问题描述 链接到标题
解题思路 链接到标题
创建一个数组,表示手中的5元纸币、10元纸币、20元纸币的数目,当其中5元纸币数目小于0,说明无法找零,遇到20元纸币时,优先使用10元纸币找零。
代码 链接到标题
#include <vector>
using std::vector;
class Solution {
public:
bool lemonadeChange(vector<int> &bills) {
vector<int> num(3, 0);
for (int i = 0; i < bills.size(); i++) {
if (bills[i] == 5)
num[0]++;
else if (bills[i] == 10) {
if (num[0] > 0) {
num[0]--;
num[1]++;
} else {
return false;
}
} else {
if (num[1] > 0) {
if (num[0] > 0) {
num[1]--;
num[0]--;
} else
return false;
} else {
if (num[0] > 2)
num[0] -= 3;
else
return false;
}
}
}
return true;
}
};