45.跳跃游戏

news/2024/9/10 7:04:58/ 标签: 算法, leetcode

:双层for。复杂度n*n   n

class Solution {public int jump(int[] nums) {// 找到所有的条约方法,返回其中的最小次数// 从后向前,依次记录到最后的次数int n = nums.length;if(n == 1) return 0;// int[] temp = new int[n];// temp[n-1] = 0;for(int i = n - 2; i >= 0; i--){if(i + nums[i] >= n-1){temp[i] = 1;continue;}if(nums[i] == 0) {// 设置成n,意味着不可达temp[i] = n;continue;}int min = Integer.MAX_VALUE;for(int j = i+1; j <= Math.min(i+nums[i], n-2); j++){min = Math.min(min, temp[j]);}temp[i] = min+1;}return temp[0];}
}

:简化。可以直接在原数组上设置最小长。空间复杂度  1

public int jump(int[] nums){int n = nums.length;if(n == 1) return 0;for(int i = n - 1; i >= 0; i--){if(i == n-1) nums[i] = 0;if(i + nums[i] >= n-1){nums[i] = 1;continue;}if(nums[i] == 0){nums[i] = n;continue;}int min = Integer.MAX_VALUE;for(int j = i+1; j <= Math.min(i+nums[i], n-2); j++){min = Math.min(min, nums[j]);}nums[i] = min + 1;}return nums[0];
}

 :复杂度:n 1

public int jump(int[] nums){int range = 0;int maxRange = 0;int cnt = 0;// 注意i的条件,不要遍历最后一个元素for(int i = 0; i < nums.length - 1; i++){maxRange = Math.max(maxRange, i + nums[i]);if(i == range){cnt++;range = maxRange;}}return cnt;
}

 


http://www.ppmy.cn/news/1506870.html

相关文章

【RISC-V设计-07】- RISC-V处理器设计K0A之CSR

【RISC-V设计-07】- RISC-V处理器设计K0A之CSR 文章目录 【RISC-V设计-07】- RISC-V处理器设计K0A之CSR1.简介2.顶层设计3.端口说明4.寄存器说明5.代码设计6.总结 1.简介 控制和状态寄存器&#xff08;Control and Status Register&#xff0c;简称CSR&#xff09;是用于控制和…

设计模式:状态机设计模式

状态机设计模式 对状态的统一管理 适合在业务需要多种状态下流转的设计模式 状态机的四个要素 现态:当前的状态 事件:触发事件时,状态会发生迁移 动作:发生事件时执行的动作 次态:迁移向的状态 状态机的实现 将业务数据的快照状态记录在数据库中 每一种状态流转时会被…

LinkedList集合及迭代器的源码分析

一.介绍: 二.LinkedList集合特有的API: 三.迭代器的源码分析: package com.itheima.a03myarraylist;import java.util.ArrayList; import java.util.Iterator;public class A01_ArrayListDemo1 {public static void main(String[] args) {ArrayList<String> listnew Arr…

docker代理

Dockerd 代理 sudo mkdir -p /etc/systemd/system/docker.service.d sudo touch /etc/systemd/system/docker.service.d/proxy.confproxy.conf [Service] Environment"HTTP_PROXYproxy.example.com:8080/" Environment"HTTPS_PROXYproxy.example.com:8080/&qu…

常见的中间件漏洞:Tomcat

Tomcat简介 tomcat是一个开源而且免费的isp服务器&#xff0c;默认端口:8080&#xff0c;属于轻量级应用服务器。它可以实现JavaWeb程序的装载&#xff0c;是配置JSP(Java Server Page)和JAVA系统必备的一款环境。在历史上也披露出来了很多的漏洞&#xff0c;这里我们讲几个经典…

【登录扫码】--集成企业微信

背景&#xff1a; 在系统的登录流程中&#xff0c;我们引入了一种创新的扫码登录方式&#xff0c;旨在提升用户体验与安全性。此流程的核心在于通过生成并扫描二维码来实现快速、便捷的登录认证 调用流程详细说明&#xff1a; 扫码登录选择&#xff1a;用户首先访问系统登录页面…

uni-app内置组件(基本内容,表单组件)()二

文章目录 一、 基础内容1.icon 图标2.text3.rich-text4.progress 二、表单组件1.button2.checkbox-group和checkbox3.editor 组件4.form5.input6.label7.picker8.picker-view 和 picker-view-column9.radio-group 和 radio10.slider11.switch12.textarea 一、 基础内容 1.icon…

vscode 目录管理

目录 命令行打开新目录: 新窗口打开新目录 使用快捷键 Ctrl + K, Ctrl + O 按 Ctrl + P快速定位目录 输入目录路径 开头 并以 / 结尾。例如,输入 aaa/。 使用 VS Code 插件 Project Manager 3. 管理和切换常用目录 快速打开文件 Favorites插件 常用目录收藏,可以右…

服务器启动jar包的时候报”no main manifest attribute“异常(快捷解决)

所以,哥们,又出现问题咯.没事,我也出现了,哈哈哈哈哈,csdn感觉太麻烦了,所以搞了一篇这个. 没得事,往下看,包解决的. 希望可以帮助到各位&#xff0c;感谢阅览&#xff01; 小手点个赞&#xff0c;作者会乐烂哈哈哈哈哈哈&#x1f606;&#x1f606;&#x1f606;&#x1f606…

四数之和(LeetCode)

题目 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&#xff1a; 0 <…

c++ - c++11(2)

文章目录 一、可变模板参数1、概念2、可变模板参数展开3、使用场景 二、 lambda表达式1、引入2、 lambda表达式语法3、演示4、函数对象 三、 包装器1、function包装器2、bind包装器 一、可变模板参数 1、概念 C11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和…

cmake基于语法和应用

CMake中的变量 变量和含义 常用变量含义PROJECT_NAME工程名变量PROJECT_SOURCE_DIR顶层的项目目录PROJECT_BINARY_DIR使用cmake的路径CMAKE_ROOTCMAKE安装的根目录CMAKE_BUILD_TYPE编译类型&#xff1a;empty&#xff0c;Debug&#xff0c;Release…CMAKE_SOURCE_DIR顶层的CMak…

qt-02代码创建控件 -- 信号和槽

代码创建控件 dialog.hdialog.cppmain.cpp dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QLabel> #include <QLineEdit> #include <QPushButton>#include <QDialog>class Dialog : public QDialog {Q_OBJECTpublic:Dialog(QWidget *parent …

sql注入——sqlilabs1-15

目录 sql注入靶场练习--sqlilabs 1.less-1​编辑 1.测试发现单引号为逃逸符号 2.确定查询列数为三列 3.查询到数据库名 4.查询数据库中的表名 5.查询用户表的列名字 6.查询用户信息 2.less-2​编辑 2.确定查询列数为三列 3.查询到数据库名 4.查询数据库中的表名 5.…

ue4.27 C++ 解析内容为json的字符串

json字符串为 R"({"x": -1870.0, "y": -11400.0})"&#xff0c;里面内容是个json对象。 const FString& Message R"({"x": -1870.0, "y": -11400.0})"; TSharedRef<TJsonReader<>> Reader TJs…

Android笔试面试题AI答之Kotlin(4)

文章目录 14.Kotlin 相对于 Java 的优势 &#xff1f;1. 简洁性2. 安全性3. 高效性4. 互操作性5. 工具支持6. 官方支持 15. Kotlin 有哪些缺点&#xff1f;1. 编译速度2. 学习曲线3. 生态系统成熟度4. 运行时性能5. 社区支持6. 并发计算支持 16. Kotlin 暂停和阻塞有什么区别&a…

分享一个基于Spring Boot的救灾物资调动系统的设计与实现(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

智驭灌区,科技领航—— 高效灌区信息化系统管理平台

在水资源日益珍贵的今天&#xff0c;传统灌区的粗放式管理模式已难以满足现代农业的发展需求。我们自豪地推出——灌区信息化系统管理平台&#xff0c;以科技赋能水利&#xff0c;引领灌溉管理进入智能化、精细化新时代。 【智能决策&#xff0c;精准灌溉】 告别传统灌溉的盲目…

Job任务调度系统

实现一个任务调度系统&#xff0c;这篇文章就够了_schedulerx 开源调度系统-CSDN博客

【vulhub靶场之rsync关】

一、使用nmap模块查看该ip地址有没有Rsync未授权访问漏洞 nmap -p 873 --script rsync-list-modules 加IP地址 查看到是有漏洞的模块的 二、使用rsync命令连接并读取文件 查看src目录里面的信息。 三、对系统中的敏感文件进行下载——/etc/passwd 执行命令&#xff1a; rsy…