題目描述:
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。
陣列中的每個元素代表你在該位置可以跳躍的最大長度。
你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。
示例:
輸入: [2,3,1,1,4]
輸出: 2
解釋: 跳到最後乙個位置的最小跳躍數是 2。
從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步到達陣列的最後乙個位置。
說明:
假設你總是可以到達陣列的最後乙個位置。
解題思路:
1)、首先是可以看出每次是尋找i == midmax
範圍內最大的可以擴充套件到的位置,
2)、midmax
更新為每個節點i == midmax
最大擴充套件到的位置;
3)、跳到下乙個midmax
則ret++
,直到midmax + 1 >= nums.size()
,+ 1
是因為 i是從0開始的;
例子:
nums = [2,3,1,1,4]
1)、midmax = 0
,ret = 0
;
當i = 0
;tmp = 0 + nums[0] = 2
;
2)、mimax = 0
;i == mimax
;mimax = tmp = 2
;ret = 1
;
當i = 1
;tmp = max(1 + nums[1], tmp) = 4
;
當i = 2
;tmp = max(2 + nums[2], tmp) = max(3, 4) = 4
;
3)、mimax = 2
;i == mimax
;mimax = tmp = 4
;ret = 2
;
又因為if(mimax + 1 = nums.size())
所以:break
;
**實現:
class
solution
}return ret ;}}
;
複雜度計算:
時間複雜度:o(n)
;
空間複雜度:o(1)
;
45 跳躍遊戲 II
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步...
45 跳躍遊戲 II
貪心 每一步都挑選下一步能達到的最遠距離。2,3,1,1,4 1 2 3 4 5 以下數字指代下標1 5.第一次可以跳到下標2或者3,如果跳到2,下一步最遠可以跳到5,如果跳到3,下一步只能跳到4,所以這一次選擇跳到2。如果某一步的最遠距離跨過了5或者到達了5,說明可以跳到終點。本題已經說了肯定可以...
45 跳躍遊戲 II
題目描述 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後...