860. 柠檬水找零 - 力扣(LeetCode)
class Solution {
public:bool lemonadeChange(vector<int>& bills) {int five=0,ten=0,twenty=0;for(int bill:bills){if(bill==5)five++;if(bill==10){if(five<=0)return false;ten++;five--;}if(bill==20){if(ten>0&&five>0){ten--;five--;}else if(five>=3){five-=3;}elsereturn false;}}return true;}
};
406. 根据身高重建队列 - 力扣(LeetCode)
贪心算法,不要两边一起贪,会顾此失彼 | LeetCode:406.根据身高重建队列_哔哩哔哩_bilibili
class Solution {
public:static bool cmp(const vector<int>&a,const vector<int> &b){if(a[0]==b[0])return a[1]<b[1];return a[0]>b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(),people.end(),cmp);vector<vector<int>> que;for(int i=0;i<people.size();i++){int position=people[i][1];que.insert(que.begin()+position,people[i]);}return que;}};
452. 用最少数量的箭引爆气球 - 力扣(LeetCode)
贪心算法,依然是判断重叠区间 | LeetCode:435.无重叠区间_哔哩哔哩_bilibili
class Solution {
private:static bool cmp(const vector<int>&a,const vector<int>&b){return a[0]<b[0];}
public:int findMinArrowShots(vector<vector<int>>& points) {if(points.size()==0)return 0;sort(points.begin(),points.end(),cmp);int result=1;for(int i=1;i<points.size();i++){if(points[i][0]>points[i-1][1])//不用取等号,因为等号时,题目规定是可以穿破的result++;else{points[i][1]=min(points[i-1][1],points[i][1]);}}return result;}
};