算法训练营Day32
2023-12-30 13:05:40
122. 买卖股票的最佳时机 II - 力扣(LeetCode)
class Solution {
public int maxProfit(int[] prices) {
int res=0;
for(int i =1;i<prices.length;i++){
if((prices[i]-prices[i-1])>0){
res+=prices[i]-prices[i-1];
}
}
return res;
}
}
55. 跳跃游戏 - 力扣(LeetCode)
局部最优,每次遍历都找最大的覆盖范围,
全局最优,到最后就是整个数组跳跃的最大范围。
public class Solution {
public boolean canJump(int[] nums) {
int range = 0;
for(int i = 0;i<=range;i++){
range = Math.max(range,i+nums[i]);
if(range>=nums.length-1){
return true;
}
}
return false;
}
}
45. 跳跃游戏 II - 力扣(LeetCode)
跳跃几次,更新几次覆盖范围
因为这个范围可以一次选择跳动的,更改范围,说明一次挑不到,要再跳
所以count++再新范围这里。
class Solution {
public int jump(int[] nums) {
if(nums.length==1){
return 0;
}
int range = 0;
int count = 0;
int maxRange = 0;
for(int i =0;i<=range;i++){
maxRange = Math.max(maxRange,i+nums[i]);
if(maxRange >= nums.length-1){//养成类似范围写成>=的习惯,不容易报错
count++;
break;
}
if(i==range){
range = maxRange;
count++;
}
}
return count;
}
}
文章来源:https://blog.csdn.net/weixin_65728526/article/details/135302705
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!