演算法之跳躍遊戲

2021-09-10 14:28:25 字數 1170 閱讀 4767

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。

陣列中的每個元素代表你在該位置可以跳躍的最大長度。

你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。

示例:輸入: [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 步...