您的位置:首页 > 新闻 > 资讯 > 广州户外拓展_站酷网素材图库海报设计_qq推广_郑州企业网络推广外包

广州户外拓展_站酷网素材图库海报设计_qq推广_郑州企业网络推广外包

2025/3/4 11:09:37 来源:https://blog.csdn.net/Takagi1_san/article/details/145870316  浏览:    关键词:广州户外拓展_站酷网素材图库海报设计_qq推广_郑州企业网络推广外包
广州户外拓展_站酷网素材图库海报设计_qq推广_郑州企业网络推广外包

一. 学习文章及资料

  • 122.买卖股票的最佳时机II
  • 55.跳跃游戏
  • 45.跳跃游戏II

二. 学习内容

1. 买卖股票的最佳时机II

收集正利润的区间,就是股票买卖的区间,而我们只需要关注最终利润,不需要记录区间。
那么只收集正利润就是贪心所贪的地方!

局部最优:收集每天的正利润
全局最优:求得最大利润。

局部最优可以推出全局最优,找不出反例,试一试贪心!

class Solution {public int maxProfit(int[] prices) {int result=0;for(int i=1;i<prices.length;i++){//第二天开始才有收益,只取正收益,亏就抛result+=Math.max(prices[i]-prices[i-1],0);}return result;}
}

2. 跳跃游戏

局部最优:每次取最大跳跃步数(取最大覆盖范围)
全局最优:最后得到整体最大覆盖范围,看是否能到终点。

局部最优推出全局最优,找不出反例,试试贪心!

class Solution {public boolean canJump(int[] nums) {// 只有一个元素,就是能达到if(nums.length==1) return true;int far=0;// 注意这里是小于等于farfor(int i=0;i<=far;i++){far=Math.max(i+nums[i],far);// 说明可以覆盖到终点了if(far>=nums.length-1) return true;}return false;}
}

3. 跳跃游戏II

从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最少步数!

这里需要统计两个覆盖范围,当前这一步的最大覆盖和下一步最大覆盖

如果移动下标达到了当前这一步的最大覆盖最远距离了,还没有到终点的话,那么就必须再走一步来增加覆盖范围,直到覆盖范围覆盖了终点。

class Solution {public int jump(int[] nums) {int count=0;      //记录的步数int curDistant=0; //当前步数到达最远距离int nextDistant=0;//下一步数到达最远距离for(int i=0;i<nums.length;i++){nextDistant=Math.max(i+nums[i],nextDistant);if(nextDistant>=nums.length-1){ //如果下一步能到达终点count++; //说明再走一步就行了break;}if(i==curDistant){ //到达当前步数最远的地方还没到终点curDistant=nextDistant; //更新覆盖距离count++;}}return count;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com