本文主要是介绍代码随想录第三十六天打卡|860.柠檬水找零 ,406.根据身高重建队列 ,452. 用最少数量的箭引爆气球,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
860.柠檬水找零
本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。
代码随想录
class Solution {
public:bool lemonadeChange(vector<int>& bills) {int five=0,ten=0,twenty=20;for (int bill:bills){if (bill==5)five++;else if (bill==10){if (five<=0)return false;five--;ten++;}else {if (five>0 && ten>0){five--;ten--;twenty++;}else if (five>=3){five-=3;twenty++;}else return false;}}return true;}
};
406.根据身高重建队列
本题有点难度,和分发糖果类似,不要两头兼顾,处理好一边再处理另一边。
代码随想录
class Solution {
public:static bool cmp(vector<int>&a,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>>res;for (int i=0;i<people.size();i++){int position=people[i][1];res.insert(res.begin()+position,people[i]);}return res;}
};
总结
感觉思路很巧妙。
452. 用最少数量的箭引爆气球
本题是一道 重叠区间的题目,好好做一做,因为明天三道题目,都是 重叠区间。
代码随想录
class Solution {
public:static bool cmp(vector<int>a,vector<int>b){if (a[0]==b[0])return a[1]<b[1];return a[0]<b[0];}int findMinArrowShots(vector<vector<int>>& points) {sort(points.begin(),points.end(),cmp);long long mi=1e18;long long ma=-1e18;int res=1;for (auto point:points){mi=mi<point[1]?mi:point[1];ma=ma>point[0]?ma:point[0];if (mi<ma){res++;mi=point[1];ma=point[0];}}return res;}
};
总结
这时间复杂度不是nlngn吗?怎么给我运行了两秒。
这篇关于代码随想录第三十六天打卡|860.柠檬水找零 ,406.根据身高重建队列 ,452. 用最少数量的箭引爆气球的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!