跳到主要内容

860.柠檬水找零

链接:860.柠檬水找零
难度:Easy
标签:贪心、数组
简介:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。

题解 1 - typescript

  • 编辑时间:2020-12-10
  • 执行用时:96ms
  • 内存消耗:40.8MB
  • 编程语言:typescript
  • 解法介绍:贪心,20 时尽可能返回 10+5。
function lemonadeChange(bills: number[]): boolean {
let five = 0;
let ten = 0;
for (const bill of bills) {
if (bill === 5) {
five++;
} else if (bill === 10) {
five--;
ten++;
} else if (ten > 0) {
ten--;
five--;
} else {
five -= 3;
}
if (five < 0) return false;
}
return true;
}

题解 2 - cpp

  • 编辑时间:2023-07-22
  • 执行用时:88ms
  • 内存消耗:81.4MB
  • 编程语言:cpp
  • 解法介绍:遍历。
class Solution {
public:
bool lemonadeChange(vector<int>& bills) {
int coins[2] = {0};
for (auto &bill : bills) {
switch (bill) {
case 5:
coins[0] += 1;
break;
case 10:
if (coins[0] >= 1) {
coins[0]--;
} else {
return false;
}
coins[1] += 1;
break;
case 20:
if (coins[0] >= 1 && coins[1] >= 1) {
coins[0] -= 1;
coins[1] -= 1;
} else if (coins[0] >= 3) {
coins[0] -= 3;
} else {
return false;
}
}
}
return true;
}
};