演算法練習 跳躍遊戲二(動態規劃)

2021-08-09 16:24:21 字數 625 閱讀 3102

題目描述:

給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。

陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。

你的目標是到達最後乙個下標,並且使用最少的跳躍次數。

例如:a=[2,3,1,1,4],到達最後乙個下標的最少跳躍次數為 2。(先跳躍 1 步,從下標 0 到 1,然後跳躍 3步,到達最後乙個下標。一共兩次)

輸入格式

第一行輸入乙個正整數n(1≤n≤100) ,接下來的一行,輸入 n個整數,表示陣列 a。

輸出格式

最後輸出最少的跳躍次數。

樣例輸入

53 1 1 1 1

樣例輸出

2

#include#includeusing namespace std;  

static const int inf=(1<<21);

static const int max=100;

int main()

r[0] = 0;

for(int i = 0; i < n; ++i)

} printf("%d",r[n-1]);

}

演算法設計與分析 (二)動態規劃

動態規劃的一般步驟 以揹包問題為例 動態規劃本質上為帶備忘錄的窮舉演算法。對動態規劃問題,直接套框架即可 問題有什麼 狀態 有什麼 選擇 然後窮舉。動態規劃演算法適用於組合優化問題,通過劃分子問題的邊界,從子問題開始逐層向上求解,通過子問題之間的依賴關係進行推導計算,最大限度減少重複工作,提高演算法...

動態規劃之跳躍遊戲

跳躍遊戲 給出乙個非負整數陣列,你最初定位在陣列的第乙個位置,陣列中的每個元素代表你在那個位置可以跳躍的最大長度,判斷你是否能到達陣列的最後乙個位置。注意事項 陣列a的長度不超過5000,每個元素的大小不超過5000 樣例 1 輸入 2,3,1,1,4 輸出 true 樣例 2 輸入 3,2,1,0...

括號匹配(二)(動態規劃)

時間限制 1000 ms 記憶體限制 65535 kb 難度 6 描述 給你乙個字串,裡面只包含 四種符號,請問你需要至少新增多少個括號才能使這些括號匹配起來。如 是匹配的 是匹配的 是不匹配的 是不匹配的 輸入 第一行輸入乙個正整數n,表示測試資料組數 n 10 每組測試資料都只有一行,是乙個字串...