演算法(38) 動態規劃(1) 跳躍遊戲 C

2022-06-27 01:45:15 字數 801 閱讀 4844

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

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

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

輸入:int arr = ;

輸出:2

題意:不明白的要去搜一下,網上很多說明。

思路:當前最優解+下一步的最優解   迭代或者遞迴來完成。這是解決此類問題最簡化的模型之一。

上**

//題目:位置,值;按值跳位置,最少步數

// 2. 三個變數 jump cur next

//1.陣列操作

int jump_test(vectorarr)

cout << "*****jumptest*****" << endl;

for (auto it = arr.begin(); it != arr.end(); it++)

int jump = 0;

int cur = 0;

int next = 0;

for (int i = 0; i < arr.size(); i++)

next = max(next, i + arr[i]);//下一步的右邊界

} return jump;

}void jump_main()

; vectorvarr;

varr.insert(varr.begin(), arr[0], arr[3]);

cout << "返回值" << jump_test(varr) << endl;

}

動態規劃之跳躍遊戲

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

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

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

遞迴與動態規劃 跳躍遊戲

題目 給定陣列arr,arr i k代表可以從位置i向右跳1 k個距離。比如,arr 2 3,代表從位置2可以跳到位置3 位置4或者位置5。如果從位置0出發,返回最少跳幾次能跳到arr最後的位置上。舉例 arr 3,2,3,1,1,4 arr 0 3,選擇跳到位置2 arr 2 3,可以跳到最後的位...