青蛙过河问题–(我的课后上机题)

青蛙过河:
给定一个非负整数数组 nums ,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。
例如

输入:2,3,1,1,4
输出:true
输入:3,2,1,0,4
输出:false
分析:1. 该问题最终还是要看整个过程跳的最远的长度是否能到达最后一个位置。
           2. 从出发点到最远的跳跃长度中间的所有位置都是可达的
           3. 再看每一次跳跃,能够到达的新的最远距离是前面能够到达的所有位置的索引与其值的和 (nums[i]+i)的最大值 。
           4.我们再进一步分析,前面到达过的位置中只有从上一次的最远的位置往后 到 现在的最远的位置才可能会使得跳的长度增加,可称为 有效位置段
所以我们就只要去求从有效位置段所能到达的新的最远位置,一直重复直到最远位置到达或者超过了最后面的位置就能过河,或者到达不了最后面的位置且最远位置不再发生变化(到达了最终的最远的位置)就不能过河。

代码实现
   

青蛙过河问题–(我的课后上机题)最先出现在Python成神之路

版权声明:
作者:congcong
链接:https://www.techfm.club/p/7524.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>