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

简介: 圣诞活动预热开始啦,汉堡店推出了全新的汉堡套餐。为了避免浪费原料,请你帮他们制定合适的制作计划。给你两个整数 tomatoSlices 和 cheeseSlices,分别表示番茄片和奶酪片的数目。不同汉堡的原料搭配如下:巨无霸汉堡:4 片番茄和 1 片奶酪小皇堡:2 片番茄和 1 片奶酪请你以 [total_jumbo, total_small]([巨无霸汉堡总数,小皇堡总数])的格式返回恰当的制作方案,使得剩下的番茄片 tomatoSlices 和奶酪片 cheeseSlices 的数量都是 0。如果无法使剩下的番茄片 tomatoSlices 和奶酪片 cheeseSlic

 题目

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

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

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

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

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

    解题思路

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

                  image.gif


                  目录
                  相关文章
                  |
                  6天前
                  |
                  算法 Java
                  [Java·算法·简单] LeetCode 27. 移除元素 详细解读
                  [Java·算法·简单] LeetCode 27. 移除元素 详细解读
                  27 1
                  |
                  6天前
                  |
                  算法 Java C语言
                  C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
                  C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
                  |
                  6天前
                  |
                  算法 Java
                  [Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
                  [Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
                  25 0
                  |
                  6天前
                  |
                  算法 Java
                  [Java·算法·简单] LeetCode 392. 判断子序列 详细解读
                  [Java·算法·简单] LeetCode 392. 判断子序列 详细解读
                  42 0
                  |
                  6天前
                  |
                  存储 canal 算法
                  [Java·算法·简单] LeetCode 125. 验证回文串 详细解读
                  [Java·算法·简单] LeetCode 125. 验证回文串 详细解读
                  31 0
                  |
                  6天前
                  |
                  SQL Java 应用服务中间件
                  Java项目防止SQL注入的四种方案
                  Java项目防止SQL注入的四种方案
                  54 0
                  |
                  6天前
                  |
                  消息中间件 NoSQL 算法
                  Java中常见延时队列的实现方案总结
                  Java中常见延时队列的实现方案总结
                  |
                  6天前
                  |
                  Oracle jenkins Java
                  【Jenkins】使用java -jar jenkins.war --httpPort=XXXX启动Jenkins报错【解决方案】
                  【Jenkins】使用java -jar jenkins.war --httpPort=XXXX启动Jenkins报错【解决方案】
                  |
                  6天前
                  |
                  算法 NoSQL Java
                  Java实战:分布式ID生成方案
                  在分布式系统的设计与开发过程中,如何生成全局唯一、有序且高可用的ID是一个绕不开的核心问题。尤其是在电商、社交网络、金融交易等领域,ID不仅是业务数据的重要标识,还可能直接影响系统的稳定性和扩展性。本文将深入剖析分布式ID生成方案的设计原则、常见算法,并通过Java示例展示一种可行的实现方式。
                  54 2
                  |
                  6天前
                  |
                  算法 Java
                  [Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
                  [Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
                  28 0