2026/1/13 11:04:22
网站建设
项目流程
用淘宝评论做网站,图片在线制作水印,郑州网站建设及优化,搭建平台舞台贪心算法
定义
贪心算法是在对问题求解时 总是做出在当前看来时最好的选择 (局部最优来达到全局最优) 贪心算法并不是对所有问题都可以得到整体的最优解 关键是贪心策略的选择 选择的贪心邪恶略必须具有无后效性 就是说某个状态以前的过程不会影响以后的状态 只于当前状态有关…贪心算法定义贪心算法是在对问题求解时 总是做出在当前看来时最好的选择(局部最优来达到全局最优)贪心算法并不是对所有问题都可以得到整体的最优解 关键是贪心策略的选择 选择的贪心邪恶略必须具有无后效性就是说某个状态以前的过程不会影响以后的状态 只于当前状态有关解题第一般步骤建立数学模型来描述问题把求解的问题分成若干子问题对每一子问题求解 得到子问题的局部最优解把子问题的最优解合并为原来问题的一个解贪心题目LeetCode 435 无重复区间LeetCode435classSolution{public:interaseOverlapIntervals(vectorvectorintintervals){//按照结尾时间的大小排序//如果a[0]b[0]也不用考虑顺序问题//因为我们只用判断能不能一次更新一下end就行了//不必在意两个区间的开始时间相同时的情况了sort(intervals.begin(),intervals.end(),[](autoa,autob){returna[1]b[1];});//到这里已经排好序了 按照结束时间排序intnum1;//一次能有几个区间intendintervals[0][1];//当前的结尾时刻for(intj1;jintervals.size();j){if(endintervals[j][0]){//如果可以更新结尾时刻endintervals[j][1];//更新结尾num;//数量}}//总区间个数-一次的区间个数需要删除的区间个数returnintervals.size()-num;//返回要删除的区间个数}};LeetCode 452 用最少数量的箭引爆气球LeetCode 452classSolution{public:intfindMinArrowShots(vectorvectorintpoints){//先让数组按照气球结束区间排序sort(points.begin(),points.end(),[](autoa,autob){returna[1]b[1];});intnum1;//当前的结果 就时弓箭的个数intcurrpoints[0][1];//目前的结尾for(inti1;ipoints.size();i){if(currpoints[i][0]){//如果以当前结尾的弓箭不能射到这个i位置的气球num;currpoints[i][1];}//如果以当前结尾的弓箭能射到这个i位置的气球 就直接j 就行了 就是下一次循环}returnnum;}};