1、局部最优可以推出全局最优
1、贪心算法:分发饼干
局部最优:大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个
全局最优:喂饱尽可能多的小孩。
2、贪心算法:摆动序列
局部最优:删除单调坡度上的节点,那么这个坡度就可以有两个局部峰值。
整体最优:整个序列有最多的局部峰值,从而达到最长摆动序列。
3、贪心算法:最大子序和
局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。
全局最优:选取最大“连续和”
4、K次取反后最大化的数组和
局部最优:让绝对值大的负数变为正数,当前数值达到最大
整体最优:整个数组和达到最大。
5、跳跃游戏
重点:覆盖范围
遍历每一个点的最大范围 判断能否到达目标点,移动点要在范围内
定义一个cover 及当前能够到达的最大距离 cover = max(i + nums[i], cover);
6 、跳跃游戏2
以最小的步数增加覆盖范围
这里需要统计两个覆盖范围,当前这一步的最大覆盖和下一步最大覆盖。
maxdis = Math.max(maxdis,nums[i]+i);
if(maxdis >= nums.length-1){
count++;
break;
}
if(i == curdis ){
curdis = maxdis;
count++;
}
7 、加油站
局部最优:当前累加rest[j]的和curSum一旦小于0,起始位置至少要是j+1,因为从j开始一定不行。
全局最优:找到可以跑一圈的起始位置
两个维度权衡问题
在出现两个维度相互影响的情况时,两边一起考虑一定会顾此失彼,要先确定一个维度,再确定另一个一个维度。