code 贪心总结

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开始一定不行。
全局最优:找到可以跑一圈的起始位置

两个维度权衡问题

在出现两个维度相互影响的情况时,两边一起考虑一定会顾此失彼,要先确定一个维度,再确定另一个一个维度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值