题目
圣诞活动预热开始啦,汉堡店推出了全新的汉堡套餐。为了避免浪费原料,请你帮他们制定合适的制作计划。
给你两个整数
tomatoSlices
和cheeseSlices
,分别表示番茄片和奶酪片的数目。不同汉堡的原料搭配如下:
- 巨无霸汉堡:4 片番茄和 1 片奶酪
- 小皇堡:2 片番茄和 1 片奶酪
请你以
[total_jumbo, total_small]
([巨无霸汉堡总数,小皇堡总数])的格式返回恰当的制作方案,使得剩下的番茄片tomatoSlices
和奶酪片cheeseSlices
的数量都是0
。如果无法使剩下的番茄片
tomatoSlices
和奶酪片cheeseSlices
的数量为0
,就请返回[]
。
解题思路
- 先将所有的奶酪制作成小皇堡,计算剩余的番茄片;
- 分情况讨论:
- 无法满足不剩下奶酪或番茄:
- 剩余番茄片小于0;
- 剩下番茄片无法整除2(巨无霸汉堡 - 小皇堡);
- 所有奶酪片都制作巨无霸汉堡都无法消耗完番茄片;
- 番茄片剩余0:
- 所有汉堡都为小皇堡;
- 剩余的番茄片 % 2获得巨无霸汉堡的数量,剩下的奶酪片则做成小皇堡。
代码展示
class Solution { public List<Integer> numOfBurgers(int tomatoSlices, int cheeseSlices) { List<Integer> ans = new ArrayList<>(); int residue = tomatoSlices - cheeseSlices * 2; if(residue < 0 || residue % 2 == 1 || tomatoSlices > cheeseSlices * 4){ return ans; } else if(residue == 0){ ans.add(0); ans.add(cheeseSlices); } else { int num = residue / 2; ans.add(num); ans.add(cheeseSlices - num); } return ans; } }