題目描述(困難難度)
算法
(貪心)
每次更新最大距離,然後把每一步所能跳的範圍作爲一個區間,每當時,則必須要跳一步,如果大於等於,則可退出for循環
注意:size = 1時直接返回0
時間複雜度是,空間複雜度是
C++代碼
class Solution {
public:
int jump(vector<int> &nums) {
int steps = 0;
int end = 0;
int maxPosition = 0;
if (nums.size() <= 1) return 0;
for (int i = 0; i < nums.size(); i++) {
maxPosition = max(maxPosition, i + nums[i]);
if (i == end) {
end = maxPosition;
steps++;
if (end >= nums.size() - 1) break;
}
}
return steps;
}
};
寫在最後:我的博客主要是對計算機領域所學知識的總結、回顧和思考,把每篇博客寫得通俗易懂是我的目標,分享技術和知識是一種快樂 ,非常歡迎大家和我一起交流學習,有任何問題都可以在評論區留言,也期待與您的深入交流(^∀^●)