力扣刷题Days25-45. 跳跃游戏 II(js)

目录

1,题目

2,代码

贪心算法+正向查找

3,学习

解题思路

具体代码处理

数组遍历的最后边界的处理:


1,题目

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]

每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:

2,代码

贪心算法+正向查找

/*** @param {number[]} nums* @return {number}*/
var jump = function(nums) {let jumpsTemp = 0;let end = 0;let maxPosition = 0;let steps =  0;for(let i = 0;i<nums.length-1;i++){maxPosition = Math.max(maxPosition,i+nums[i]);if(i === end){end = maxPosition;steps++;}}return steps;
};
 for(let i = 0;i<nums.length-1;i++){maxPosition = Math.max(maxPosition,i+nums[i]);if(i === end){end = maxPosition;steps++;}}
end和maxPosition变量的值 和数组下标值保持一致,便于数据的使用;

3,学习

解题思路

每次找到可以到达的最远位置,就可以实现线性时间内得到最少的跳跃次数。

具体代码处理

思路中 应该是在每次最远距离中选择下一跳最远的,才进行step++,这里做了转化。

维护当前能够到达的最大下标位置,记作边界。我们从左到右遍历数组,当到达边界的时候,更新边界并将跳跃次数增加。

相比于两层嵌套的循环,在时间上从O(n*n)变为O(n);

数组遍历的最后边界的处理:

我们不用访问最后一个元素,是因为在访问最后一个元素之前,我们的边界一定大于等于最后一个元素,否则无法调到最后一个位置。


勉励自己:贵在坚持!

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

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

相关文章

Nuclei Poc开发

1、Poc开发工具介绍 Nuclei&#xff1a;https://nuclei.projectdiscovery.io/ Cloud Platfrom云平台&#xff1a;https://cloud.projectdiscovery.io/ 2、目标站点简介 目标演示站点&#xff1a;http://glkb-jqe1.aqlab.cn/nacos/#/login 指纹&#xff1a;Nacos 已知常用漏洞…

日本大带宽服务器优缺点分析

日本大带宽服务器是很多用户的选择&#xff0c;那么日本大带宽服务器优缺点都是什么?Rak部落小编为您整理发布日本大带宽服务器优缺点分析。 日本大带宽服务器的优点主要包括高速的数据传输、亚太地区的良好覆盖、可靠性和稳定性强以及先进的硬件和光纤网络技术。 日本大带宽服…

基于springboot+vue的农产品直卖平台

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

20个SpringSecurity框架核心组件详解

Spring Security 是一个功能强大且灵活的身份验证和访问控制框架&#xff0c;在很多项目中都会采用该框架来实现权限控制功能&#xff0c;兄弟们在开发中需要搞清楚底层实现逻辑&#xff0c;或者面试时会被面试官频频追问底层源码&#xff0c;今天的文章&#xff0c;V哥总结了S…

(3)乾卦_学习笔记

大象 天行健&#xff0c;君子当自强不息。 健&#xff1a;持久的运行不息&#xff1a;跌倒了爬起来 从乾卦这里&#xff0c;先求自己。人是靠自己的&#xff0c;如果靠环境&#xff0c;那还学习干什么。一个人最了不起的&#xff0c;不是去控制别人&#xff0c;而是做一个好…

牛客竞赛语法入门班顺序结构习题(重现赛)(1031-1040)

本篇包含&#xff1a; 1、1031-时间转换 2、1032-温度转换 3、1033-计算机内存 4、1034-[NOIP2017]成绩 5、1035-KiKi的最高分 6、1036-组队比赛 7、1037-平方根 8、1038-长方体 9、1039-使徒袭来 10、1040-白兔的分身术 本篇包含考点&#xff1a; 1、小时、分钟和秒的转换 2、…

备战蓝桥杯Day35 - 动态规划 - 01背包问题

问题描述 隐含前提&#xff1a; 1.物体是不可分的&#xff0c;要么装&#xff0c;要么不装&#xff0c;不能只装一部分。 2.物体顶多使用一次。 动态规划思路 我在b站上看的闫氏dp分析大法的视频&#xff0c;他对dp问题做了总结归纳。 从集合的角度分析dp问题。求出有限集…

【python导入包解决方案】linux环境下python文件无法导入其他文件夹中的python文件的解决方案

出错描述 Test: │ ├─main │ main.py └─pakfunc.py如上图&#xff0c;我有个python项目叫Test&#xff0c;我的期望是pak文件夹当作自定义包&#xff0c;main文件夹里面是我的主程序&#xff0c;然后去调pak的包。现在我在main.py文件里面导入func.py里面的某个函…

24.3.24 《CLR via C#》 笔记10

第十三章 接口 类和接口继承 CLR不支持多继承&#xff0c;因此所有托管编程语言都不支持任何类都从且只能从一个类派生&#xff08;最终从Object类派生&#xff09;定义接口实际只是对一组方法进行了统一的命名&#xff0c;类通过指定接口名称来继承接口&#xff0c;且必须显式…

一款炫酷的python形状绘制动画库

这个库让复杂数学概念的可视化变得既简单又有趣&#xff0c;无论是线性代数、微积分&#xff0c;还是更高级的数学主题&#xff0c;Manim都能让它们栩栩如生&#xff0c;特别适合于制作数学视频和演示文稿。 特点 动画生成&#xff1a; Manim库提供了一套丰富的工具和方法&…

Install Docker

Docker Desktop 直接安装 Docker Desktop Docker Desktop includes the Docker daemon (dockerd), the Docker client (docker), Docker Compose, Docker Content Trust, Kubernetes, and Credential Helper. Linux下安装Docker CE 参考官方文档 参见阿里云的文档 # step 1…

Git 使用笔记

基本操作&#xff1a; 初始化 &#xff08;git init&#xff09; 使用背景和作用&#xff1a; 在本地建立一个文件夹后&#xff0c;基于这个文件夹进行git 操作&#xff0c;赋予git操作本文件夹的权限 。查看当前文件夹状态&#xff08;git status&#xff09; 每次打开文件夹…

ubuntu22.04基于docker部署k8s1.29.x 高可用集群

参考&#xff1a;https://mp.weixin.qq.com/s/7i68jmvi2eo_6wlqYEOupQ 操作系统&#xff1a;Ubuntu 22.04 nginx代理配置 代理IP &#xff1a;192.168.0.10 vim /etc/nginx/nginx.conf stream {upstream kube-apiserver {server 192.168.0.11:6443 max_fails3 fail_ti…

k8s中,pod服务的状态和pod里面的容器的状态关系

Pod 的状态和 Pod 里面的容器的状态是密切相关的。Pod 是 Kubernetes 中最小的调度单元&#xff0c;一个 Pod 可以包含一个或多个容器。Pod 的状态反映了 Pod 中所有容器的状态情况。 Pod 的状态包括&#xff1a; Pending&#xff08;等待&#xff09;&#xff1a;Pod 已经被创…

【WEEK4】Learning Objectives and Summaries【SpringMVC】【English Version】

Learning Objectives: Getting Started with SpringMVC in Four Weeks - Week 4 Learning Content: Reference video tutorials【狂神说Java】SpringMVC最新教程IDEA版通俗易懂Integrate the SSM framework Spring SpringMVC environmentPerform add, delete, check and modi…

算法系列--动态规划--子序列(1)

&#x1f495;"深思熟虑的结果往往就是说不清楚。"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;算法系列–动态规划–子序列(2) 今天带来的是算法系列--动态规划--子序列(1),是子序列问题的开篇!带大家初识子序列问题 一.什么是子序列问题 我们…

6.volatile与JMM

文章目录 被 volatile 修饰的变量有两大特点volatile 的内存语义volatile 凭什么可以保证有序性和可见性? 内存屏障(面试重点)解读 volatile 的两大特性内存屏障 volatile 特性两大类读屏障(Load Barrier)写屏障(Store Barrier) 四小类C源码分析四类屏障特点 如何保证有序性?…

huggingface的transformers训练gpt

目录 1.原理 2.安装 3.运行 ​编辑 4.数据集 ​编辑 4.代码 4.1 model init​编辑 forward&#xff1a; 总结&#xff1a; 关于loss和因果语言模型&#xff1a; ​编辑 交叉熵&#xff1a;​编辑 记录一下transformers库训练gpt的过程。 transformers/examples/…

klipper源码分析之simulavr测试

分析Klipper源码&#xff0c;有时需要结合下位机一起分析&#xff0c;这样才能更加全面的了解Klipper的工作原理。如果手头上有打印机主板&#xff0c;电脑当做上位机运行Klipper&#xff0c;这样是比较方便。如果手头上没有打印机主板&#xff0c;可以用simulavr模拟AVR下位机…

Linux常见指令解析一

Linux常见指令解析一 常见指令1. ls 指令2.pwd 命令3.cd 命令4.touch 命令5.mkdir 命令6.rmdir指令 && rm 指令7.man 指令8.cp 指令9.cat 命令 && tac 命令10.mv 指令11.more 指令12.less 指令13.head 指令14.tail 指令15.cal 指令 常见指令 1. ls 指令 语法…