Leecode 55. 跳躍遊戲(Jump Game)
阿新 • • 發佈:2018-12-17
題目: 給定一個非負整數陣列,你最初位於陣列的第一個位置。 陣列中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。
輸入: [2,3,1,1,4] 輸出: true 解釋: 從位置 0 到 1 跳 1 步, 然後跳 3 步到達最後一個位置。
輸入: [3,2,1,0,4] 輸出: false 解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後一個位置。
思路:
考慮出現0的處理辦法,只要出現0之前某數可以越過0所對應的位置即可
如A = [3,3,1,0,4],i=3時A[i]=0,而A[1]>(3-1)即可越過該0
參考解答:
class Solution { public: bool canJump(vector<int>& nums) { if(nums.size()==1) return true; if(nums[0]==0) return false; for(int i=1;i<nums.size()-1;i++){ if(nums[i]==0){ for(int j=i-1;nums[j]<=(i-j);j--) if(j==0) return false; } } return true; } };