136、【贪心算法】leetcode ——860. 柠檬水找零(贪心策略)(C++版本)
2023-09-11 14:20:01 时间
题目描述
原题链接:860. 柠檬水找零
解题思路
对三种情况进行模拟(5、10、20),每次给的时候,先把优先把大钱给出,大钱没有了再给小钱。
class Solution {
public:
bool lemonadeChange(vector<int>& bills) {
int five = 0, ten = 0;
for(int i = 0; i < bills.size(); i++) {
if(bills[i] == 5) {
five++;
} else if(bills[i] == 10) {
if(five > 0) {
ten++;
five--;
} else return false;
} else if(bills[i] == 20) {
if(ten > 0 && five > 0) { // 先用ten
ten--;
five--;
} else if(ten == 0 && five >= 3) { // ten没有,再多用five
five -= 3;
} else return false;
}
}
return true;
}
};
参考文章:860. 柠檬水找零
相关文章
- leetcode Valid Palindrome C++&python 题解
- Visual Studio Code (vscode)编译C++
- 《C和C++程序员面试秘笈》——1.9 如何理解C++是面向对象化的,而C是面向过程化的
- 《C和C++代码精粹》——1.17 标准库特征
- C/C++小数保留问题
- 189、【动态规划】leetcode ——312. 戳气球(C++版本)
- 174、【动态规划/贪心算法/滑动窗口】leetcode ——674. 最长连续递增序列:一题多解 (C++版本)
- 168、【动态规划】leetcode ——121. 买卖股票的最佳时机:dp数组+变量优化 (C++版本)
- 160、【动态规划】leetcode ——279. 完全平方数:二维数组+一维滚动数组(C++版本)
- 153、【动态规划】leetcode ——1049. 最后一块石头的重量 II:滚动数组(C++版本)
- 144、【动态规划】leetcode ——509. 斐波那契数:递归法+迭代法(C++版本)
- 130、【贪心算法/动态规划】leetcode ——122. 买卖股票的最佳时机 II(C++版本)
- 129、【动态规划/贪心算法】leetcode ——53. 最大子数组和(C++版本)
- 124、【回溯算法】leetcode ——46. 全排列(C++版本)
- 121、【回溯算法】leetcode ——78. 子集(C++版本)
- 114、【回溯算法】leetcode ——77. 组合:回溯法+剪枝优化(C++版本)
- 108、【树与二叉树】leetcode ——235. 二叉搜索树的最近公共祖先:普通树解法+BST性质解法(C++版本)
- 99、【树与二叉树】leetcode ——113. 路径总和 II:回溯法两种版本(C++版本)
- 80、【字符串】leetcode ——459. 重复的子字符串(C++版本)
- 75、【字符串】leetcode——541. 反转字符串 II(C++版本)
- 64、【链表】leetcode——203. 移除链表元素(C++版本)
- C++学习笔记26,虚函数
- C++库大全(转)
- C++中的平方、开方、绝对值怎么计算