当前位置: 首页 > news >正文

跳跃游戏(贪心思想)

题解

给你一个非负整数数组 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 , 所以永远不可能到达最后一个下标。

提示:

  • 1 <= nums.length <= 104
  • 0 <= nums[i] <= 105

题解

如何判断终点是否可达

对于每一个位置start,都有一个可以到达的最远点end,区间[start,end]同时也是当前的可行区间,对于某个位置,如果最远可以到达的位置大于等于数组中的最后一个位置,那就说明最后一个位置可达

思路

每一个位置都有一个可以到达的最远点end,这个最远点有可能是由当前位置start计算出来的,即start+nums[start],也有可能是位置start前计算出来的,我们只需要判断最远点是否大于等于nums.size()-1即可

代码

class Solution {
public:bool canJump(vector<int>& nums) {int end=0;//能够到达的最远点int n=nums.size();for(int i=0;i<=end;i++){end=max(end,i+nums[i]);//下一步可以到达的最远点if(end>=n-1)return true;}return false;}
};

http://www.lryc.cn/news/231379.html

相关文章:

  • 【JavaSE语法】类和对象(二)
  • 【SA8295P 源码分析 (三)】121 - MAX9295A 加串器芯片手册分析 及初始化参数分析
  • Maya 2024 for Mac(3D建模软件)
  • 9. 深度学习——GAN
  • BeanUtils中的copyProperties方法使用
  • hivesql连续日期统计最大逾期/未逾期案例
  • 基于STM32的无线通信系统设计与实现
  • kubernetes--pod详解
  • WPF提供了哪些不同类型的画刷
  • STM32与ZigBee技术在智能家居无线通信中的应用研究
  • 【Apache Doris】审计日志插件 | 快速体验
  • Web安全:Vulfocus 靶场搭建.(漏洞集成平台)
  • Go ZIP压缩文件读写操作
  • 全堆栈图像生成器专为Multiverse后端Bootcamp设计,结合了React、Firebase和Hugging Face API
  • 【C#学习】button:只显示图片
  • 我招基础初级运维实习生的面试题
  • vue实现浏览器关闭或刷新弹窗提示(beforeunload/unload)
  • Zookeeper学习笔记(1)—— 基础知识
  • mp4视频批量截取!!!
  • jQuery - AJAX get() 和 post() 方法
  • 设计模式(4)-行为型模式
  • JavaScript概述
  • Solidity案例详解(四)投票智能合约
  • Linux系统编程——进程中vfork函数
  • 敏感数据是什么?包含哪些?如何保障安全?
  • Leadshop开源商城小程序源码 – 支持公众号H5
  • Scala---方法与函数
  • 【C++】泛型编程 ④ ( 函数模板 与 普通函数 调用规则 | 类型自动转换 | 类型自动转换 + 显式指定泛型类型 )
  • 基于ChatGPT的文本生成艺术框架—WordArt Designer
  • 服务名无效。 请键入 NET HELPMSG 2185以获得更多的帮助