2023.12.25力扣每日一题——不浪费原料的汉堡制作方案

2023-12-25 23:32:13

题目来源

力扣每日一题;题序: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;
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

文章来源:https://blog.csdn.net/weixin_42075274/article/details/135210294
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。