1276. 不浪费原料的汉堡制作方案 --力扣 --JAVA

2023-12-25 16:52:59

题目

圣诞活动预热开始啦,汉堡店推出了全新的汉堡套餐。为了避免浪费原料,请你帮他们制定合适的制作计划。

给你两个整数?tomatoSlices?和?cheeseSlices,分别表示番茄片和奶酪片的数目。不同汉堡的原料搭配如下:

  • 巨无霸汉堡:4 片番茄和 1 片奶酪
  • 小皇堡:2 片番茄和?1 片奶酪

请你以?[total_jumbo, total_small]([巨无霸汉堡总数,小皇堡总数])的格式返回恰当的制作方案,使得剩下的番茄片?tomatoSlices?和奶酪片?cheeseSlices?的数量都是?0

如果无法使剩下的番茄片?tomatoSlices?和奶酪片?cheeseSlices?的数量为?0,就请返回?[]

解题思路

  1. 先将所有的奶酪制作成小皇堡,计算剩余的番茄片;
  2. 分情况讨论:
    1. 无法满足不剩下奶酪或番茄:
      1. 剩余番茄片小于0;
      2. 剩下番茄片无法整除2(巨无霸汉堡 - 小皇堡);
      3. 所有奶酪片都制作巨无霸汉堡都无法消耗完番茄片;
    2. 番茄片剩余0:
      1. 所有汉堡都为小皇堡;
    3. 剩余的番茄片 % 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;
    }
}

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