数据结构刷题(二十五):122买卖股票的最佳时机 II、55跳跃游戏、45跳跃游戏II
创始人
2024-06-03 22:45:12
0

1.122. 买卖股票的最佳时机 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.55. 跳跃游戏

思路:贪心。将这个问题就转化为跳跃覆盖范围究竟可不可以覆盖到终点!

局部最优解:每次取最大跳跃步数(取最大覆盖范围)。

整体最优解:最后得到整体最大覆盖范围,看是否能到终点。

注意:只需要满足有一个位置能够直接指向最后的下标,且前面的位置可以到达这个位置。

public boolean canJump(int[] nums) {int count = 0;for (int i = 0; i <= count; i++) {// 每移动一个单位,就更新最大覆盖范围。// 注意i + nums[i],必须得有一个位置直接指向最后的下标才能truecount = Math.max(count, i + nums[i]);// 当最大覆盖范围能指向最后一个下标时结束if (count >= nums.length - 1)return true;}return false;
}

3.45. 跳跃游戏 II

思路:贪心。

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

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

  • 其中只要下一步的最大覆盖能够覆盖到最后一个下标,则直接返回count+1;

  • 若不能,则走到当前可覆盖的最大范围,count+1,并且更新下一步可覆盖的最大范围。

class Solution {public int jump(int[] nums) {if (nums == null || nums.length == 0 || nums.length == 1) {return 0;}//记录跳跃的次数int count = 0;//当前的覆盖最大区域int curjump = 0;//最大的覆盖区域int nextjump = 0;for (int i = 0; i < nums.length; i++) {//在可覆盖区域内更新最大的覆盖区域nextjump = Math.max(nums[i] + i, nextjump);//说明当前一步,再跳一步就到达了末尾if (nextjump >= nums.length - 1)return (count + 1);//走到当前覆盖的最大区域时,更新下一步可达的最大区域if (i == curjump){count++;curjump = nextjump;}}return count;}
}

相关内容

热门资讯

fat32分区格式化后手工恢复... 哎呀,真是吓死我了!那天手一抖,竟然把我的宝贝FAT32分区给格式化了,里面的照片、文档、还有那些年...
北京第二医院体检中心:一次心灵... 嘿,朋友们,今天我要带你们走进一个充满神秘色彩的地方——北京第二医院体检中心!这不仅仅是一次普通的体...
书店整理书作文-书店整理书的特... 在这个快节奏的世界里,书店成了我心灵的避风港。每当我踏入这个充满墨香的空间,心中便涌起一股说不出的喜...
笔记本蓝屏代码0x000000... 哎呀,说到这个0x0000007a,我就一肚子火!你知道吗,每次我正沉浸在剧情高潮,或者快要完成那个...
基佬大乱斗手机版怎么玩-基佬大... 哟,各位小伙伴们,今天咱们来聊聊那个让人笑到肚子疼的游戏——基佬大乱斗手机版!这游戏简直就是把欢乐和...
gta5盗版mod安装教程-如... 嘿,兄弟们,今天咱们来点刺激的,聊聊怎么给咱们的GTA5装上那些酷炫的盗版Mod,让游戏体验直接飙升...
电脑蓝屏nvlddmkmsys... 哎呀,说到这个电脑蓝屏,真是让人头疼到爆炸!那天晚上,我正沉迷于我的游戏世界,突然之间,屏幕一黑,一...
easyrecovery注册码... 哎呀,最近是不是好多人都在找EasyRecovery的注册码啊?听说有免费的,是不是心里痒痒的,想赶...
cad安装后打不开怎么办-CA... 哎呀呀,真是气死我了!刚刚辛辛苦苦下载安装的CAD软件,满心欢喜地点开,结果呢?屏幕一闪,啥也没有了...
gtaiv缺少xlive.dl... 哎呀,天哪!我这刚准备热血沸腾地投入到GTAIV的街头火拼中,突然屏幕一黑,弹出来个讨厌的窗口:“缺...
双宽带叠加路由器:让网速快如火... 哎呀,说到这个双宽带叠加路由器,我简直是爱到不行!你知道吗,以前家里网速慢得像蜗牛爬,看个视频卡得我...
河南省公安厅电话 110:关键... 哎呀,说到这个河南省公安厅的电话啊,我这心里就五味杂陈的。你说,这年头,谁还没个需要找警察叔叔的时候...
电信新视通:改变生活的魔法,让... 亲爱的朋友们,今天我想和大家聊聊这个让人兴奋不已的“电信新视通”!这不仅仅是一个新名词,它简直就是现...
pq分区魔术师80 win7-... 哎呀,说到这个PQ分区魔术师80在Win7上的使用体验,我简直要激动得跳起来!你知道吗,我的电脑自从...
php ssleay32dll... 哎呀,今天咱们来聊聊那个让不少程序员头大的小东西——PHP里的ssleay32.dll文件!这个神秘...
怎样不提示丢失.dll-电脑丢... 哎呀呀,最近真是烦透了,总是听到那个“丢失.dll文件”的警告,简直就像是被小鬼缠上了,甩都甩不掉!...
mentohust 重启认证-... 哎呀,各位亲们,今天我可是遇到了个大麻烦!你们知道那个叫Mentohust的家伙吗?就是那个负责让我...
朝阳第二医院电话号码,找起来费... 哎呀,说到这个朝阳第二医院的电话号码,我真是又爱又恨!你知道吗,每次我有点小病小痛的,第一个念头就是...
联想g410重装系统步骤-联想... 嘿,大家好!今天我要带你们一起经历一次惊心动魄的联想G410重装系统之旅!别担心,我会用最接地气的方...
32位xp精简版系统下载-32... 嘿,各位电脑小白和怀旧大佬们,今天我要给大家带来一个超级炸裂的好消息!那就是32位XP精简版系统的下...