55.跳跃游戏

题目描述

题目描述

题解(贪心算法)

思路

思路

解析1

解析1

代码

java 复制代码
class Solution {
    public boolean canJump(int[] nums) {
        // 记录当前能跳到的最远下标
        int farthest = 0;
        
        for (int i = 0; i < nums.length; i++) {
            // 如果当前遍历的下标 i 已经超过了所能到达的最远距离,说明无法继续前进
            if (i > farthest) {
                return false;
            }
            
            // 更新能到达的最远下标
            farthest = Math.max(farthest, i + nums[i]);
            
            // 优化:如果最远距离已经可以到达或越过最后一个下标,直接返回 true
            if (farthest >= nums.length - 1) {
                return true;
            }
        }
        //=========================================
        //问题1:这里return逻辑不会被执行,为什么还要写?
        //=========================================
        return false;
    }
}

问题1:这里return逻辑不会被执行,为什么还要写?

问题1解答

复杂度分析

  • 时间复杂度: O(N)O(N)O(N),其中 NNN 是数组 nums 的长度。我们只需要遍历一遍数组即可得出结果
  • 空间复杂度: O(1)O(1)O(1)。只需要常数级别的额外空间来存储 farthest 变量
相关推荐
纪念 2295 分钟前
C++算法(三)
开发语言·c++·算法
学不会pwn不改名19 分钟前
时间复杂度与空间复杂度详解
算法
AbandonForce30 分钟前
递归、搜索与回溯:从板书到二叉树解题方法
c++·算法·决策树
打工仔折腾 AI44 分钟前
让时序预测真正参与决策:TimechoAI 工程化落地与管线设计实践
人工智能·后端·python·算法·机器学习·性能优化
Light601 小时前
企业自建 AI 智能体,成本差 8 倍还是 46 倍?
java·人工智能·算法·知识图谱·rag·ai agent 上下文·token 成本
曹牧1 小时前
VS: Visual Studio 里把未包含的文件加进项目2
linux·运维·算法
重生之小比特1 小时前
【算法拾光】滑动窗口|长度最小的子数组 + 无重复字符的最长子串
算法
weixin_307779131 小时前
C++代码实现MATLAB中的fitnlm函数功能
开发语言·c++·算法·matlab
雪落漂泊1 小时前
C++算法:双指针篇(下)
数据结构·c++·算法