給定乙個非負整數陣列,你最初位於陣列的第乙個位置。
陣列中的每個元素代表你在該位置可以跳躍的最大長度。
你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。
示例:輸入: [2,3,1,1,4]
輸出: 2
解釋: 跳到最後乙個位置的最小跳躍數是 2。
從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步到達陣列的最後乙個位置。
說明:假設你總是可以到達陣列的最後乙個位置。
思路:遍歷每乙個位置,比較所有能到該位置的(j-i< value) 跳躍次數
class
solution
//記錄跳到該位置的最小跳躍次數
int[
] min_jump_num_to_cur_pos=
newint
[nums.length]
; min_jump_num_to_cur_pos[0]
=0;for
(int i=
1;i} min_jump_num_to_cur_pos[i]
=min;
}return min_jump_num_to_cur_pos[nums.length-1]
;}}
從0~0開始,看一下每個範圍裡面能跳轉到的 下乙個位置的範圍 ,如果跳轉到的範圍大於等於結尾,那麼返回結果
比如 陣列【2,1】 從0~0的範圍 可以跳轉到0 ~ 2的範圍(0+2)
class
solution
int jump_num=1;
//記錄當前跳了幾次
//記錄 當前跳轉的範圍 比如, 第0 次 的跳轉範圍是0~0 第一次是 1~num[0]
int left=0;
int right=math.
min(nums[0]
,nums.length-1)
;if(right==nums.length-1)
int cur_pos=0;
//記錄當前能跳轉到的最大的位置
while
(cur_posleft=right;
right=cur_pos;
}return jump_num;
}}
演算法之跳躍遊戲
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 輸出 fa...
演算法 跳躍遊戲
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。leetcode 解題思路 class solution return f n 1 解題思路 維護乙個範圍內的最少跳躍次數,當超出該範圍,那就不得不...
Leetcode之跳躍遊戲
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步...