【力扣】45. 跳跃游戏 II

Problem: 45. 跳跃游戏 II

文章目录

  • 问题
  • 思路
  • 复杂度
  • Code

问题

在这里插入图片描述

思路

核心思路,例如nums[i]=5,那么最远能跳五步;
//那么在这接下来1-5范围内,哪个能让我跳的最远,这个最远指的是
----------------------------------------------------------超过5的范围最远:而不是1-5步内哪个数最大!!!!
//例如: 5 4 1 1 3 1;
//下标: 0 1 2 3 4 5
下一步是跳到nums[4]显然能下一步能跳的更远(注意这个更远的含义,指超出5的范围)
而不是跳到nums[1],即下一步的步数最大。

复杂度

时间复杂度:

O ( n ) O(n) O(n)

空间复杂度:

O ( 1 ) O(1) O(1)

Code

int jump(int* nums, int numsSize) {int flag = 0;int feet = 0;int temp, max;temp = max = 0;//核心思路就是例如nums[i]=5,那么最远能跳五步;//那么在这接下来1-5范围内,哪个能让我跳的最远,这个最远指的是//超过5的范围最远:而不是1-5步内哪个数最大://例如: 5 4 1 1 3 1;//下标: 0 1 2 3 4 5//下一步是跳到nums[4]显然能下一步能跳的更远,而不是跳到nums[1]if (numsSize <= 1)return 0;for (int i = 0; i < numsSize; i++) {if (nums[i] >= numsSize - i - 1)return (feet + 1);//直接一步跳出去for (int j = 1; j <= nums[i]; j++) {if (nums[i + j] >= numsSize - i - j - 1) {return feet + 2;//直接两步跳出去}temp = nums[i + j] - (nums[i] - j);//判断这一步接下来能跳多远,temp//temp<0代表跳不出nums[i]的范围,没有意义if (max < temp) {                max = temp;              //temp>0代表能跳出nums[i]的范围,可以作为候选flag = i + j;}}if (flag != 0) {i = flag - 1;//注意这里要-1,因为for循环会进行一次i++;feet++;flag = 0;//清空标志位max = 0;//清空标志位} else {i = i + nums[i] - 1;feet++;}}return feet;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/822785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录图论

1. 所有可能的路径 class Solution:def allPathsSourceTarget(self, graph: List[List[int]]) -> List[List[int]]:def dfs(graph, result, path, root): #result 返回结果, path记录路径, root记录遍历到了第几个节点if root len(graph) - 1: #如果遍历到最后…

前端-嵌套对象转FormData(支持文件/对象无限层级递归)

/*** 嵌套对象转FormData* @param formData* @param data* @param parentKey*/ const appendFormData = (formData: any, data: any, parentKey = ) => {for (const key in data) {if (Object.prototype.hasOwnProperty.call(data, key)) {const value = data[key];const fu…

如何让多人同时扫码看图?图片转二维码的制作方法

现在经常会发现需要通过扫描二维码的方式来获取图片信息&#xff0c;这种方式可以让很多人能够同时获取图片信息&#xff0c;有利于提升传播的效率和用户体验。那么如何使用图片二维码生成器来在线制作二维码呢&#xff1f;其实步骤很简单&#xff0c;只需要在电脑3步就可以轻松…

Solana 上创建自己的 SLPToken:简明指南

Solana 定义 Solana 是由 Solana Labs 创建的区块链平台&#xff0c;旨在提供高吞吐量和低延迟的去中心化应用&#xff08;DApps&#xff09;开发环境。它采用一系列创新技术&#xff0c;如 PoH&#xff08;Proof of History&#xff09;共识机制和 Tower BFT&#xff08;BFT …

大模型预测结果导入到Doccano,人工修正预测不准的数据

背景 使用大语言模型做实体识别的实验时&#xff0c;发现大模型关于实体的边界预测一直不准。 主要原因在于当时找了很多同学标注数据&#xff0c;由于不同组同学关于实体的边界没有统一&#xff0c;故导致数据集中实体边界也没统一。 &#xff08;找太多人标&#xff0c;会有…

数据结构常见面试问题答案总结

数据结构是计算机科学中的一个基础且重要的领域&#xff0c;面试中经常涉及数据结构的相关问题。以下是一些常见的数据结构面试问题及其答案总结&#xff1a; 数组和链表的区别是什么&#xff1f; 数组&#xff1a; 优点&#xff1a;访问速度快&#xff0c;因为可以通过索引直接…

HalconLen2-示例程序分析

dev_update_window(off) dev_open_window(0, 0, 512, 512, black, WindowHandle) //打开窗口 stop() //程序中断 *dev_close_window() //关闭窗口 read_image (Bond, die/die_03) //读取图片 dev_display(Bond) //显示图片 set_display_font(WindowHandle, 16, mono, true, fal…

#陶晶驰串口屏使用

1.陶晶驰串口屏输入要连接的wifi信息实现 &#xff08;1&#xff09;选择文本控件 &#xff08;2&#xff09;给文本控件配置输入键盘&#xff0c;id代表用户名&#xff0c;password代表wifi密码&#xff08;注意wifi的频段需要为2.4GHz&#xff09; &#xff08;3&#xff0…

【结构型模式】适配器模式

一、适配器模式概述 适配器模式的定义-意图&#xff1a;将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。(对象结构模式->对象适配器/类结构模式->类适配器) 适配器模式包含三个角色&#xff1a;目标(Target)角色、适配者(Adapt…

【运维】nginx配置解析

如果访问Nginx时出现502 Bad Gateway错误&#xff0c;则可能是Nginx主机上的SELinux限制了其使用http访问权限引起的&#xff0c;输入命令setsebool -P httpd_can_network_connect 1 开启权限即可。 nginx 基础配置 nginx 是一个功能非常强大的 web服务器加反向代理服务器&…

打破常规,重新定义PMP备考之路

今天我想和大家聊聊一个我们都不陌生的话题——PMP备考。你是不是也在备考的苦海中挣扎&#xff0c;或是听说过各种“速成”的神话&#xff1f;&#x1f914; 最近读到一篇文章&#xff08;来着圣略PMP培训讲师老杨&#xff09;&#xff0c;让我对PMP备考有了新的认识。原来&a…

常见的地图绘制方法,这个包全包了~~

在上一篇介绍完Bokeh精美可视化作品之后&#xff0c;有小伙伴咨询我能不能稍系统的介绍下如何在地图上添加如柱形图等其他元素的付方法&#xff1f; 这就让我想到一个优秀的地图绘制可视化包-R-cartography&#xff0c;虽然之前也有简单介绍过&#xff0c;本期就具体分享下该包…

Python QP 求解器

系列文章目录 前言 该 Python 库提供一站式 solve_qp 函数&#xff0c;用于求解凸二次规划&#xff1a; 向量不等式逐个坐标应用。函数返回后端 QP 求解器找到的初等解 &#xff0c;如果求解失败/问题不可行&#xff0c;则返回 None。所有求解器都要求问题是凸的&#xff0c;这…

CentOS 系统上使用 yum 安装 Nginx 及其模块

要在 CentOS 系统上使用 yum 安装 Nginx 及其 NJS (Nginx JavaScript Module)&#xff0c;首先需要确保你的系统已经包含了 Nginx 的官方仓库&#xff0c;因为 Nginx 的某些模块可能不在默认的软件仓库中。 以下是安装 Nginx 和 Nginx Module NJS 的基本步骤&#xff1a; 添加…

探讨选择成为一名程序员的原因,是出于兴趣还是职业发展。

选择成为一名程序员的原因可以是出于兴趣和职业发展两方面的考虑。以下是两个方面的探讨&#xff1a; 兴趣&#xff1a;许多人选择成为程序员是因为对计算机科学和编程的兴趣。他们喜欢解决问题、构建应用程序和创造新的数字体验。对于这些人来说&#xff0c;编程是一种有趣、令…

隐式/动态游标的创建与使用

目录 将 emp 数据表中部门 10 的员工工资增加 100 元&#xff0c;然后使用隐式游标的 %ROWCOUNT 属性输出涉及的员工数量 动态游标的定义 声明游标变量 打开游标变量 检索游标变量 关闭游标变量 定义动态游标&#xff0c;输出 emp 中部门 10 的所有员工的工号和姓名 Orac…

光圈如何影响图像质量

光圈是摄影中一个重要的参数&#xff0c;它决定了镜头的光线通过量&#xff0c;直接影响图像的曝光和深度。以下是光圈如何影响图像质量的几个方面&#xff1a; 曝光控制&#xff1a;光圈的大小决定了相机接收到的光线的数量。较大的光圈&#xff08;小光圈值&#xff09;允许…

Ubuntu安装Java17

Ubuntu安装Java17 文章目录 Ubuntu安装Java171. 升级Ubuntu软件资源库2. 安装OpenJDK3. 检查是否安装成功4. 检查OpenJDK被安装在什么地方5. 设置全局环境变量 1. 升级Ubuntu软件资源库 $ sudo apt update && sudo apt upgrade -y2. 安装OpenJDK $ sudo apt-get inst…

攻防演练,作为红方,安装Amass进行子域名扫描

要在Ubuntu系统上安装并使用Amass进行子域名扫描&#xff0c;可以按照以下步骤操作。这个过程涵盖了从安装到实际使用的全程。 1. 安装Amass 有多种方法可以在Ubuntu上安装Amass。我将介绍两种常见的方法&#xff1a;使用Snap包管理器和从源代码安装。 使用Snap安装&#xf…

【Vue3】getters---Vue3中的计算属性工具

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…