一. 因為求解的是乙個最優化問題,所以第乙個想到的是動態規劃,但是很可惜的是超時了.......
//令dp[i]為可以跳躍到i的最小跳躍次數.
二. 直接參考題解了.....
1. 解法一 :順藤摸瓜
2. 貪婪演算法,我們每次在可跳範圍內選擇可以使得跳的更遠的位置。每次找區域性最優,最後達到全域性最優.
3. 寫**的話,我們用 end 表示當前能跳的邊界,遍歷陣列的時候,到了邊界,我們就重新更新新的邊界。
class solution
}} return steps;
}};
可惜的是還是超時了.........
6. 改進的dp, 思路有點意思, 思想還是貪心.
//改進的dp,思路有點意思.
class solution
//dp[i]的含義是以i結尾最少跳躍次數.
vectordp(n, 0);
for (int i = 0; i < n - 1; i++)
//如果i+j沒跳到,則為dp[i]+1.
if (dp[i + j] == 0)
//如果已經有值了,說明被提前訪問到.
//那就直接break,因為次數不可能最少.
LeetCode 45 跳躍遊戲2
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。這一條題目有兩思路,乙個是 貪心演算法,還有乙個是轉化為圖的形式考慮,使用bfs演算法,我先寫下bfs思路,greedy 我還有點問題。bfs此題就...
LeetCode 45 跳躍遊戲2
leetcode 45.跳躍遊戲2 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1...
Leetcode 45 跳躍遊戲
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步...