題目描述:
給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。
陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。
你的目標是到達最後乙個下標,並且使用最少的跳躍次數。
例如: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 每組測試資料都只有一行,是乙個字串...