跳躍遊戲JS

2021-10-05 04:35:31 字數 1305 閱讀 7309

題目描述:

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

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

判斷你是否能夠到達最後乙個位置。

示例 1:

輸入: [2,3,1,1,4]

輸出: true

解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然後再從位置 1 跳 3 步到達最後乙個位置。

示例 2:

輸入: [3,2,1,0,4]

輸出: false

解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後乙個位置。

貪心演算法解題:

/**

* @param nums

* @return

*/var

canjump

=function

(nums)

let pos = nums[0]

for(

let i =

1; i < nums.length;

++i)

// 能到達最後一位

if(pos >= nums.length -1)

}return

false

};

題目描述:

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

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

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

輸入: [2,3,1,1,4]

輸出: 2

解釋: 跳到最後乙個位置的最小跳躍數是 2。

從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步到達陣列的最後乙個位置。

假設你總是可以到達陣列的最後乙個位置。

/**

* @param nums

* @return

*/var

jump

=function

(nums)

// 初始化第一步能跳到的最大位置及邊界

let ans =

1let maxpos = nums[0]

let end = nums[0]

for(

let i =

0; i < nums.length -1;

++i)

}return ans

};

LintCode 跳躍遊戲 I VS跳躍遊戲 II

陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。分析 方法一 基於動態規劃的做法,時間複雜度o n 2 陣列dp i 表示能否到達下標為i的位置,對於從下標i 1開始的每乙個位置,都從下標j 0開始到i 1判斷能否到達j,並且判斷從j開始最遠能否跳到或超過i的...

LintCode Jump Game 跳躍遊戲

給出乙個非負整數陣列,你最初定位在陣列的第乙個位置。陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。樣例 a 2,3,1,1,4 返回 true.a 3,2,1,0,4 返回 false.注意 這個問題有兩個方法,乙個是貪心和 動態規劃。貪心方法時間複雜度為o...

跳躍遊戲二

給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。你的目標是到達最後乙個下標,並且使用最少的跳躍次數。例如 a 2,3,1,1,4 a 2,3,1,1,4 a 2,3 1,1 4 到達最後乙個下標的最少跳躍次數為 22 2。先跳躍 11 1 ...