基於Nacos實現GateWay動態路由功能
阿新 • • 發佈:2022-05-15
55. 跳躍遊戲
給定一個非負整數陣列 nums
,你最初位於陣列的 第一個下標 。
陣列中的每個元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達最後一個下標。
示例 1:
輸入:nums = [2,3,1,1,4]
輸出:true
解釋:可以先跳 1 步,從下標 0 到達下標 1, 然後再從下標 1 跳 3 步到達最後一個下標。
示例 2:
輸入:nums = [3,2,1,0,4]
輸出:false
解釋:無論怎樣,總會到達下標為 3 的位置。但該下標的最大跳躍長度是 0 , 所以永遠不可能到達最後一個下標。
提示:
1 <= nums.length <= 3 * 104
0 <= nums[i] <= 105
思路:
本題還是帶有貪心思想,是否能到達最後,也就是問你跳的最遠距離能不能超過終點。那麼我們只需要在每一步去更新能到達的最遠距離即可。
class Solution { public: bool canJump(vector<int>& nums) { int n=nums.size(); int farthest=0; for(int i=0;i<n-1;i++){ //計算能到達的最遠距離 farthest=max(farthest,i+nums[i]); //如果遇到0 if(farthest<=i){ return false; } } return farthest>=n-1; } };