2023.12.25力扣每日一题——不浪费原料的汉堡制作方案
2023-12-25 23:32:13
题目来源
我的题解
方法一 数学
首先判断番茄的数量是不是偶数,若不是则不可能使用完材料,因为两种汉堡的对于番茄的消耗都是偶数;然后假设全部做小皇堡或者全部做巨无霸汉堡,看是否还有剩余的奶酪或者番茄,若还剩材料则不可以使用完材料;
已经判断出可以使用完材料后,计算两种汉堡分别需要制作的数量。
- 假设全部做小皇堡,因为做一个巨无霸汉堡的材料需要做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;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~
文章来源:https://blog.csdn.net/weixin_42075274/article/details/135210294
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!