給定一個非負整數陣列,最初定位在陣列的第一個索引處。組中的每個元素表示您在該位置的最大跳躍長度。求最小跳數
阿新 • • 發佈:2019-01-31
本題源自leetcode 45
-------------------------------------------------------------------------
思路:用倆個 變數標識當前的位置 和 下一步能調到最遠的位置。
程式碼:
int jump(vector<int>& nums) { int n = nums.size(); if(n <= 1) return 0; int cur = nums[0]; //當前跳到的最遠距離 int next = nums[0]; //下一步能跳到的最遠距離 int step = 1; for(int i = 1; i< n; i++){ if(cur < i){ cur = next; step++; } if(i + nums[i] > next){ next = i + nums[i]; } if(cur >= n-1) return step; } return 0; }