class Solution {
public:
vector<int> numOfBurgers(int tomatoSlices, int cheeseSlices) {
}
};
1276. 不浪费原料的汉堡制作方案
圣诞活动预热开始啦,汉堡店推出了全新的汉堡套餐。为了避免浪费原料,请你帮他们制定合适的制作计划。
给你两个整数 tomatoSlices
和 cheeseSlices
,分别表示番茄片和奶酪片的数目。不同汉堡的原料搭配如下:
请你以 [total_jumbo, total_small]
([巨无霸汉堡总数,小皇堡总数])的格式返回恰当的制作方案,使得剩下的番茄片 tomatoSlices
和奶酪片 cheeseSlices
的数量都是 0
。
如果无法使剩下的番茄片 tomatoSlices
和奶酪片 cheeseSlices
的数量为 0
,就请返回 []
。
示例 1:
输入:tomatoSlices = 16, cheeseSlices = 7 输出:[1,6] 解释:制作 1 个巨无霸汉堡和 6 个小皇堡需要 4*1 + 2*6 = 16 片番茄和 1 + 6 = 7 片奶酪。不会剩下原料。
示例 2:
输入:tomatoSlices = 17, cheeseSlices = 4 输出:[] 解释:只制作小皇堡和巨无霸汉堡无法用光全部原料。
示例 3:
输入:tomatoSlices = 4, cheeseSlices = 17 输出:[] 解释:制作 1 个巨无霸汉堡会剩下 16 片奶酪,制作 2 个小皇堡会剩下 15 片奶酪。
示例 4:
输入:tomatoSlices = 0, cheeseSlices = 0 输出:[0,0]
示例 5:
输入:tomatoSlices = 2, cheeseSlices = 1 输出:[0,1]
提示:
0 <= tomatoSlices <= 10^7
0 <= cheeseSlices <= 10^7
原站题解
javascript 解法, 执行用时: 80 ms, 内存消耗: 43 MB, 提交时间: 2023-12-25 00:35:37
/** * @param {number} tomatoSlices * @param {number} cheeseSlices * @return {number[]} */ var numOfBurgers = function(tomatoSlices, cheeseSlices) { if (tomatoSlices % 2 != 0 || tomatoSlices < cheeseSlices * 2 || cheeseSlices * 4 < tomatoSlices) { return [] } return [(tomatoSlices >> 1) - cheeseSlices, cheeseSlices * 2 - (tomatoSlices >> 1)]; };
cpp 解法, 执行用时: 0 ms, 内存消耗: 7.4 MB, 提交时间: 2023-12-25 00:35:24
class Solution { public: vector<int> numOfBurgers(int tomatoSlices, int cheeseSlices) { if (tomatoSlices % 2 != 0 || tomatoSlices < cheeseSlices * 2 || cheeseSlices * 4 < tomatoSlices) { return {}; } return {tomatoSlices / 2 - cheeseSlices, cheeseSlices * 2 - tomatoSlices / 2}; } };
golang 解法, 执行用时: 0 ms, 内存消耗: 2.2 MB, 提交时间: 2023-05-10 10:24:40
func numOfBurgers(tomatoSlices int, cheeseSlices int) []int { i , j := (tomatoSlices - 2 * cheeseSlices), (4 * cheeseSlices - tomatoSlices) if i % 2 != 0 || j %2 != 0 || i <0 || j<0{ return []int{} } return []int {i/2, j/2} }
java 解法, 执行用时: 1 ms, 内存消耗: 40.4 MB, 提交时间: 2023-05-10 10:23:42
class Solution { public List<Integer> numOfBurgers(int t, int c) { if (t - c * 2 < 0 || c * 4 - t < 0 || (t - c * 2) % 2 != 0 || (c * 4 - t) % 2 != 0) { return new ArrayList<>(); } return Arrays.asList(new Integer[] { (t - c * 2) / 2, (c * 4 - t) / 2 }); } }
python3 解法, 执行用时: 44 ms, 内存消耗: 16 MB, 提交时间: 2023-05-10 10:23:24
class Solution: def numOfBurgers(self, tomatoSlices: int, cheeseSlices: int) -> List[int]: if tomatoSlices % 2 != 0 or tomatoSlices < cheeseSlices * 2 or cheeseSlices * 4 < tomatoSlices: return [] return [tomatoSlices // 2 - cheeseSlices, cheeseSlices * 2 - tomatoSlices // 2]