iT邦幫忙

1

[LeetCode] 55. Jump Game

  • 分享至 

  • xImage
  •  

Medium
Related Topics: Array / Dynamic Programming / Greedy
LeetCode Source

解題想法

應該算大部分人的解法,這題因為我有印象,所以有寫出來

但當時也是看別人解法 XD

主要是尋訪每一個 nums 裡頭的值

並透過 count 來判斷能否順利完成 Jump Game

int count = nums[0]; 來初始化第一步

count = max(count - 1, nums[i]); 使用貪婪選先前 count-1 或是當下的值

結果判斷是透過 count 有沒有小於等於零

Python

class Solution:
    def canJump(self, nums: List[int]) -> bool:
        count = nums[0]
        for i in range(1, len(nums)):
            if count <= 0:
                return False
            count = max(count - 1, nums[i])
        return True

C++

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int count = nums[0];
        for (int i = 1; i < nums.size(); i++) {
            if (count <= 0)
                return false;
            count = max(count - 1, nums[i]);
        }
        return true;
    }
};

這系列文被記錄在 Top Interview 150 Series


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言