首页 > 编程语言 >跳跃游戏(贪心算法)

跳跃游戏(贪心算法)

时间:2025-01-04 21:45:27浏览次数:1  
标签:下标 nums int 到达 算法 跳跃 false true 贪心

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

 

示例 1:

输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

示例 2:

输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。


class Solution {
public:
    bool canJump(vector<int>& nums) {
        int rightmost = 0;//记录能到达的最大边界
        int n = nums.size();
        for(int i=0;i<n;i++){
            if(i<=rightmost){//首先判断是否可达最大边界以内的位置
                ////贪心算法,每遇到一个值就更新最大边界
                rightmost = max(rightmost,i+nums[i]);
            }
            if(rightmost>=n-1){//如果最大边界大于等于n-1,说明可达,立即返回true
                return true;
            }
        }
        return false;
    }
};

 

标签:下标,nums,int,到达,算法,跳跃,false,true,贪心
From: https://www.cnblogs.com/yueshengd/p/18652465

相关文章

  • 买卖股票的最佳时机(贪心算法)
    给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任......
  • (2-5-02)目标检测与分割:SLAM定位与地图构建(02) Deep SLAM算法+图优化算法
    2.5.2 DeepSLAM算法DeepSLAM(SimultaneousLocalizationandMapping)是一种结合深度学习技术和SLAM技术的方法,旨在通过使用深度神经网络来改进SLAM系统的性能。SLAM是一种用于在未知环境中同时估计相机(或传感器)的位置和构建地图的技术。在DeepSLAM中,深度学习模型通常用......
  • C语言数据结构与算法(栈和队列)
    1.栈1.栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除......
  • 带你从入门到精通——机器学习(九. 聚类算法)
    建议先阅读我之前的博客,掌握一定的机器学习前置知识后再阅读本文,链接如下:带你从入门到精通——机器学习(一.机器学习概述)-CSDN博客带你从入门到精通——机器学习(二.KNN算法)-CSDN博客带你从入门到精通——机器学习(三.线性回归)-CSDN博客带你从入门到精通——机器学习(四.逻......
  • Spark职位信息推荐系统 协同过滤推荐算法 Echarts可视化 Django框架 简历投递 大数据
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • 基于SpringBoot Vue协同过滤算法美食推荐小程序的设计与实现
    1.引言在当今的软件开发领域,企业级应用的开发和部署速度直接影响着业务的竞争力。SpringBoot以其轻量级、快速启动和强大的集成能力,成为构建现代企业级应用的首选框架。本文将带您深入了解SpringBoot框架的核心特性,并展示如何利用它构建一个高效、可扩展的系统。2.开发......
  • 【强化学习】Double DQN(Double Deep Q-Network)算法
            ......
  • 【强化学习】双延迟深度确定性策略梯度算法(TD3)详解
            ......
  • LeetCode算法题 (二叉树的直径)Day11!!!C/C++
    https://leetcode.cn/problems/diameter-of-binary-tree/description/一、题目描述给你一棵二叉树的根节点,返回该树的 直径 。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它......
  • K-均值聚类算法
    K-均值聚类算法是一种常用的无监督学习算法,用于将数据集划分为K个互不重叠的簇。该算法的目标是最小化数据点到其所属簇中心点的平方距离的总和。算法步骤如下:随机选择K个中心点作为初始簇中心。对每个样本点,计算其到各个簇中心点的距离,并将其分配给距离最近的簇。更新簇中心......