LeetCode 45 跳躍遊戲2

2021-09-19 20:36:40 字數 693 閱讀 9514

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

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

你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。

這一條題目有兩思路,乙個是 貪心演算法,還有乙個是轉化為圖的形式考慮,使用bfs演算法,我先寫下bfs思路,greedy 我還有點問題。

bfs此題就相當於將這個序列轉化為樹,每個節點能到達的範圍就是每一層的節點個數。而跳躍次數就相當於樹的層數。

對於每個元素a,有乙個最大步數,在此範圍內的元素就相當於a的鄰結點,從第乙個節點開始,掃瞄它的鄰結點,使用乙個值curmaxindex來記錄當前節點的鄰結點最大下標(就是從當前點所能到達的最遠元素的下標),然後用乙個值furmaxindex來記錄當前鄰結點所能到達的最大下標,然後更新curmaxindex為furmaxindex,再進入下一層,重複操作,直到某一層滿足furmaxindex>=nums.length-1,說明當前節點的鄰結點所能到達的最大位置已經等於或者超過了最後乙個元素位置,則說明成功,則返回當前層數+1。

public class jump_game_2 

level++;

curmaxindex = furmaxindex;

}return -1;

}public static void main(string argc) ));

}}

leetcode45 跳躍遊戲2

一.因為求解的是乙個最優化問題,所以第乙個想到的是動態規劃,但是很可惜的是超時了.令dp i 為可以跳躍到i的最小跳躍次數.二.直接參考題解了.1.解法一 順藤摸瓜 2.貪婪演算法,我們每次在可跳範圍內選擇可以使得跳的更遠的位置。每次找區域性最優,最後達到全域性最優.3.寫 的話,我們用 end 表...

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 步...