LeetCode55 跳躍遊戲

2021-09-30 01:21:24 字數 1066 閱讀 9830

題目描述

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

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

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

示例 1:

輸入:[2

,3,1

,1,4

]輸出:

true

解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1

, 然後再從位置 1 跳 3 步到達最後乙個位置。

示例 2:

輸入:[3

,2,1

,0,4

]輸出:

false

解釋: 無論怎樣,你總會到達索引為 3 的位置。

但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後乙個位置。

思路:

1.回溯,這是乙個低效的解決方法。我們模擬從第乙個位置跳到最後位置的所有方案。從第乙個位置開始,模擬所有可以跳到的位置,然後從當前位置重複上述操作,當沒有辦法繼續跳的時候,就回溯;

時間複雜度:o(2^n)

2.貪心,從倒數第二個元素遍歷陣列,判斷當能元素否到達要到達的元素(nums[pos]),要到達的元素初始為最後乙個元素,判斷條件即為:nums[i]>=pos-i(當前元素的值為在此點時可跳的最大步數,所以只要當前元素的值大於等於當前點到要到達的點的索引差,表示可以到達),之後更新pos為i,i- -,直到遍歷完陣列,返回pos==0;

時間複雜度:o(n);

**:

public

boolean

canjump

(int

nums)

// pos表示需要到達的位置

int pos = nums.length -1;

for(

int i = nums.length -

2; i >=

0; i--)}

return pos ==0;

}

LeetCode55 跳躍遊戲

leetcode55.跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入...

LeetCode 55 跳躍遊戲

題目鏈結 題目描述 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。輸入 3,2,1,0,4 輸出 ...

LeetCode 55 跳躍遊戲

問題 給定乙個非負整數陣列,你最初位於陣列的第乙個位置,陣列中的每個元素代表你在該位置可以跳躍的最大長度,判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 輸出...