C++ 中无浪费食材的汉堡数量


假设我们有两个整数 tomatoSlices 和 cheeseSlices。以下为不同汉堡的配料 -

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

我们必须找到 [total_jumbo, total_small],以便剩余的番茄片数为 0,剩余的奶酪片数也为 0。如果无法使剩余的番茄片和奶酪片等于 0,则返回 []。因此,如果输入为 tomatoSlices = 16 和 chesseSlices = 7,则输出将为 [1, 6]。这表示要制作一个巨无霸和 6 个小汉堡,我们需要 4*1 + 2*6 = 16 片番茄和 1 + 6 = 7 片奶酪。

为解决此问题,我们将按以下步骤进行 -

  • 创建一个名为 ans 的数组
  • 如果番茄为奇数或奶酪 > 番茄/2 或番茄 > 4*奶酪,则返回 ans
  • x := (4 * 奶酪 - 番茄) / 2
  • y := (番茄 - (2*x)) / 4
  • 将 y 再将 x 插入到数组 ans
  • 返回 ans

为了更好地理解,让我们来看以下实现 -

示例

 实时演示

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   vector<int> numOfBurgers(int t, int c) {
      vector <int> ans;
      if(t % 2 != 0 || c > t/2 || t > c*4)return ans;
      int x = (4 * c - t) / 2;
      int y = ( t - (2 * x) )/ 4;
      ans.push_back(y);
      ans.push_back(x);
      return ans;
   }
};
main(){
   Solution ob;
   print_vector(ob.numOfBurgers(16,7));
}

输入

16
7

输出

[1, 6, ]

更新时间:02-May-2020

253 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告