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 有沒有小於等於零
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
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;
    }
};