給定乙個非負整數陣列,你最初位於陣列的第乙個位置。
陣列中的每個元素代表你在該位置可以跳躍的最大長度。
你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。
示例:輸入: [2,3,1,1,4]
輸出: 2
解釋: 跳到最後乙個位置的最小跳躍數是 2。
從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步到達陣列的最後乙個位置。
說明:假設你總是可以到達陣列的最後乙個位置。
解:對於這道題,最先想到的是動態規劃,從後面向前計算,這樣就知道前乙個的最優步數,不用重複計算。但面對某些測試用例情況下
會顯示超時,以下為動態規劃的方法
1class
solution
1415 map_index_length[i]=best_length+1;16
17}18return map_index_length[0
];19
}20 };
後面看別人解法,因為可以跳躍的步數小於當前數字大小而不是等於,發現此題應該考察的是貪心的方法
只要選擇當前範圍內最大的能達到的數字跳躍即可(可能有點難理解,比如3,3,2,2,1,2第一步應該選滴4位數2,即範圍內nums[i]+i最大的數)
classsolution
}return
step;
}};
所選點的全部範圍走完
45 跳躍遊戲 II
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步...
45 跳躍遊戲 II
貪心 每一步都挑選下一步能達到的最遠距離。2,3,1,1,4 1 2 3 4 5 以下數字指代下標1 5.第一次可以跳到下標2或者3,如果跳到2,下一步最遠可以跳到5,如果跳到3,下一步只能跳到4,所以這一次選擇跳到2。如果某一步的最遠距離跨過了5或者到達了5,說明可以跳到終點。本題已經說了肯定可以...
45 跳躍遊戲 II
題目描述 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後...