iT邦幫忙

2024 iThome 鐵人賽

0
佛心分享-刷題不只是刷題

刷經典 LeetCode 題目系列 第 38

經典LeetCode 55. Jump Game

  • 分享至 

  • xImage
  •  

題目:
給定一個非負整數陣列 nums,你最初位於陣列的第一個下標。陣列中的每個元素代表你在該位置可以跳躍的最大長度

判斷你是否能夠到達陣列的最後一個位置。

範例:

Input: nums = [2,3,1,1,4]
Output: true
Explanation: 從下標 0 跳到 1(跳 1 步),然後從下標 1 跳 4 步到達最後一個位置。
Input: nums = [3,2,1,0,4]
Output: false
Explanation: 你總是無法到達最後一個位置,因為在下標 3,最大跳躍範圍為 0,無法越過它。

限制條件

  • 1 <= nums.length <= 10^4
  • 0 <= nums[i] <= 10^5

實作:

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int maxReach = 0;

        for (int i = 0; i < nums.size(); i++) {
            if (i > maxReach) {
                return false;
            }
            maxReach = max(maxReach, i + nums[i]);
            if (maxReach >= nums.size() - 1) {
                return true;
            }
        }

        return false;
    }
};

參考:
#55. Jump Game


上一篇
經典LeetCode 1143. Longest Common Subsequence
下一篇
經典LeetCode 139: Word Break
系列文
刷經典 LeetCode 題目80
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言