這道題在跳躍游戲(力扣55)-CSDN博客?的基礎上需要找到最小的跳躍次數。那么我們需要用一個變量來統計跳躍次數,而難點就在于何時讓該變量的值增加。這一點我寫在注釋中,大家結合我的代碼會更好理解。其他部分跟跳躍游戲(力扣55)-CSDN博客?幾乎相同,我就不再次贅述了。
代碼及詳細注釋如下:
class Solution {
public:int jump(vector<int>& nums) {if(nums.size() == 1) return 0;int next_cover = 0;int cur_cover = 0;int result = 0;for(int i = 0;i <= cur_cover;i++){next_cover = max(next_cover,i + nums[i]);//當遍歷的數組的指針達到當前的最大跳躍范圍時,就讓跳躍次數增加if(i == cur_cover){result++;cur_cover = next_cover; }//如果最大范圍大于數組最后一個下標,可以直接退出if(cur_cover >= nums.size() - 1) return result;}return 0;}
};