學習路線/貪婪演算法

55. 跳躍遊戲

Medium

Jump Game

GreedyArray

題目描述

給定一個非負整數陣列 nums,每個元素代表在該位置最多能跳幾步。從第一個位置出發,判斷是否能到達最後一個位置。

LeetCode 55原題連結 →

解法思路

  1. 維護一個變數 maxReach 記錄目前能到達的最遠位置
  2. 從左到右遍歷陣列,若當前位置超過 maxReach 則無法到達
  3. 更新 maxReach = max(maxReach, i + nums[i])
  4. 若 maxReach >= 最後位置的索引,返回 true

複雜度分析

  • 時間複雜度:O(n)
  • 空間複雜度:O(1)
2
[0]
3
[1]
1
[2]
1
[3]
4
[4]
最遠可達距離:0
演算法開始:初始化最遠可達距離為 0。
1 / 6