貪心演算法 跳躍遊戲

2021-10-21 05:57:38 字數 991 閱讀 5774

思路:第一反應是回溯問題,不斷窮舉nums【i】可能經過的路線,但是很遺憾,執行超時了

**如下,也算是提供思路吧:

class

solution

void

backtrack

(vector<

int>

& nums,

int startindex,

bool

& flag)

for(

int i =

1; i <= nums[startindex]

; i++)}

};

另一種思路:我們發現阻擋我們前進的只有元素0,因此只要判斷我們能否跨過值為0的元素,那麼我們就能繼續前進:

class

solution

else

if(i >

0&& i < nums.

size()

-1)else

startindex--;}

//遇到0不能跳過,之間返回false

if(flag ==

false

)return flag;}}

}return flag;}}

;

那我們換種思路,用貪心演算法來看看這道題:每次取最大跳躍步數(取最大覆蓋範圍),整體最優解:最後得到整體最大覆蓋範圍,看是否能到終點。

每次i只能在cover區間內取值

class

solution

return

false;}

};

貪心演算法 跳躍遊戲

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

跳躍遊戲 貪心演算法

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步...

貪心演算法 跳躍遊戲

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