lintcode: 跳跃游戏 II
生活随笔
收集整理的這篇文章主要介紹了
lintcode: 跳跃游戏 II
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?跳躍游戲 II
給出一個非負整數數組,你最初定位在數組的第一個位置。
數組中的每個元素代表你在那個位置可以跳躍的最大長度。
你的目標是使用最少的跳躍次數到達數組的最后一個位置。
樣例
給出數組A =?[2,3,1,1,4],最少到達數組最后一個位置的跳躍次數是2(從數組下標0跳一步到數組下標1,然后跳3步到數組的最后一個位置,一共跳躍2次)
解題
Jump1?
終于自己還是沒有解決出來
參考鏈接?? 理解不透?
public class Solution {/*** @param A: A list of lists of integers* @return: An integer*/public int jump(int[] A) {int target = A.length-1;int cnt = 0;while(target > 0) {for(int i=0; i<target; i++) {if(i+A[i] >= target) {target = i;cnt++;break;}}}return cnt;}}參考鏈接2?
這個好理解
public class Solution {/*** @param A: A list of lists of integers* @return: An integer*/public int jump(int[] nums) {int ret = 0;int curMax = 0;int curRch = 0;for(int i = 0; i < nums.length; i ++) // 一個一個的掃描{if(curRch < i)// 跳不到 i位置,選取前面可以跳的最遠 位置{ret ++;curRch = curMax;}curMax = Math.max(curMax, nums[i]+i);// 能夠跳到最遠的 那個位置 }return ret;}}Python
class Solution:# @param A, a list of integers# @return an integerdef jump(self, A):# write your code hereif A == None or len(A)<= 1:return 1MaxJump = A[0]subJump = A[0]count = 1for i in range(1,len(A)):if subJump <i:count+=1;subJump = MaxJumpMaxJump = max(MaxJump , A[i] + i)return count?
轉載于:https://www.cnblogs.com/theskulls/p/5292449.html
總結
以上是生活随笔為你收集整理的lintcode: 跳跃游戏 II的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java清理语句,java – 如何在不
- 下一篇: 视觉SLAM十四讲学习笔记——ch10