212.贪心算法:跳跃游戏(力扣)

代码解决

cpp 复制代码
class Solution {
public:
    bool canJump(vector<int>& nums) 
    {
        int cover = 0;  // 初始化覆盖范围
        if (nums.size() == 1) return true;  // 如果数组长度为1,直接返回 true
        
        // 遍历数组,直到当前覆盖范围
        for (int i = 0; i <= cover; i++)
        {
            // 更新当前覆盖范围
            cover = max(i + nums[i], cover);
            
            // 如果覆盖范围达到或超过最后一个位置,返回 true
            if (cover >= nums.size() - 1) return true;
        }
        
        // 如果遍历完所有位置仍不能到达最后一个位置,返回 false
        return false;
    }
};

核心思想

这个算法使用贪心算法的思路,通过遍历数组,每一步更新能到达的最远位置。如果能到达或超过数组的最后一个位置,则返回 true,否则返回 false

相关推荐
求求了学会儿吧30 分钟前
46.全排列
数据结构·算法·leetcode
alphaTao1 小时前
LeetCode 每日一题 2024/7/29-2024/8/4
算法·leetcode
rainFFrain1 小时前
动态规划与0/1背包问题:深入解析
算法·leetcode·动态规划
希望有朝一日能如愿以偿3 小时前
力扣题解(最长连续递增序列)
数据结构·算法·leetcode
yuanbenshidiaos3 小时前
数据结构----------贪心算法
数据结构·ios·贪心算法
安…..4 小时前
力扣第五十四题——螺旋矩阵
算法·leetcode·职场和发展
Gcanfly4 小时前
day32【LeetCode力扣】541. 反转字符串 II
算法·leetcode·职场和发展
阳光男孩014 小时前
力扣1488.避免洪水泛滥
算法·leetcode·职场和发展
A仔不会笑4 小时前
【LeetCode】189.轮转数组
数据结构·算法·leetcode
负载均衡-sch4 小时前
Java算法-力扣leetcode-383. 赎金信
java·算法·leetcode