本文主要是介绍2023.12.25力扣每日一题——不浪费原料的汉堡制作方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2023.12.25
- 题目来源
- 我的题解
- 方法一 数学
题目来源
力扣每日一题;题序:1276
我的题解
方法一 数学
首先判断番茄的数量是不是偶数,若不是则不可能使用完材料,因为两种汉堡的对于番茄的消耗都是偶数;然后假设全部做小皇堡或者全部做巨无霸汉堡,看是否还有剩余的奶酪或者番茄,若还剩材料则不可以使用完材料;
已经判断出可以使用完材料后,计算两种汉堡分别需要制作的数量。
- 假设全部做小皇堡,因为做一个巨无霸汉堡的材料需要做2个小皇堡的材料,所以 全部做小皇堡的个数-奶酪片数=需要做巨无霸汉堡的数
- 实际做小皇堡的个数=奶酪片数-做巨无霸汉堡的数
时间复杂度:O(1)
空间复杂度:O(1)
public List<Integer> numOfBurgers(int tomatoSlices, int cheeseSlices) {List<Integer> res=new ArrayList<>();// 若全部做小皇堡都还剩奶酪 或者 全部做巨无霸汉堡还剩番茄 或者 番茄的数量是奇数 // 上述三种情况都不可能使用完番茄和奶酪if(tomatoSlices/2<cheeseSlices||tomatoSlices/4>cheeseSlices||tomatoSlices%2!=0)return res;// 假设全部做小皇堡int bi=tomatoSlices/2;// 需要做巨无霸汉堡的数量,因为做一个巨无霸汉堡的材料需要做2个小皇堡的材料,所以 // 全部做小皇堡的个数-奶酪片数=需要做巨无霸汉堡的数int sub=bi-cheeseSlices;res.add(sub);// 实际做小皇堡的个数=奶酪片数-做巨无霸汉堡的数res.add(cheeseSlices-sub);return res;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~
这篇关于2023.12.25力扣每日一题——不浪费原料的汉堡制作方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!