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

Leetcode 45. 跳跃游戏 II(DP 双指针)

Leetcode 45. 跳跃游戏 II

动态规划

使用dp [ ] 记录每个位置可达的最小步数,每到达一个点时,更新该点所能跳跃区间内的所有点的dp值
时间复杂度较高

class Solution {public int jump(int[] nums) {int n = nums.length;int dp[] = new int [n];int N = 99999;Arrays.fill(dp, N);dp[0] = 0;for(int i = 0 ; i < n; i ++){for(int j = 1 ; j <= nums[i]; j ++){if(i + j < n)dp[i + j] = Math.min(dp[i + j], dp[i] + 1);}}return dp[n-1];}
}

优化 双指针

双指针 l r 表示目前可达的区间左右端点,遍历区间维护一个可达的最远距离maxPos
当 l r 相遇即区间遍历结束后,将该区间内可达的最远距离maxPos作为下一次跳跃的区间右端点 r ,此时跳跃一步
当 r 可以到达边界时,即结束遍历
时间复杂度O(n)

class Solution {public int jump(int[] nums) {int n = nums.length;int l = 0;int r = 0;int maxPos = 0;int step = 0;while(r < n-1){maxPos = Math.max(maxPos, l + nums[l]);// 该区间已遍历结束,更新区间右端点,此步跳出if(l == r){r = maxPos;step ++;}l ++;}return step;}
}

相关文章:

Leetcode 45. 跳跃游戏 II(DP 双指针)

Leetcode 45. 跳跃游戏 II 动态规划 使用dp [ ] 记录每个位置可达的最小步数&#xff0c;每到达一个点时&#xff0c;更新该点所能跳跃区间内的所有点的dp值 时间复杂度较高 class Solution {public int jump(int[] nums) {int n nums.length;int dp[] new int [n];int N …...

Codeforces Round 952 (Div. 4)(实时更新)

A - Creating Words 题意&#xff1a;略 代码&#xff1a; #include<bits/stdc.h> #define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)//不能使用scanf了 #define int long long #define loop(n) for(int i0;i<n;i) #define rloop(n) for(int in-1;i>…...

【AI实践】Dify开发应用和对接微信

自定义应用 创建应用有2种&#xff0c; 从应用模板创建 空白应用&#xff0c;也就是自定义应用 选择翻译助手 Translation assistant模板创建一个应用 自定义应用&#xff0c;创建一个child_accompany_bot自定的应用&#xff0c;用来支持家长&#xff0c;如何解决低龄儿童的…...

精准定位,智慧提纯:高级数据提取策略

在数据驱动的时代&#xff0c;高级数据提取策略成为企业决策、科学研究以及各类项目成功的关键。数据提取&#xff0c;不仅仅是简单地收集信息&#xff0c;而是需要精准定位目标数据&#xff0c;并通过智慧提纯方法&#xff0c;从海量数据中提取出有价值、有深度的信息。本文将…...

USB转I2C转SPI芯片CH341与CH347比较

1. 芯片中文资料&#xff1a; USB转I2C转SPI芯片CH341 高速USB转接芯片CH347转9M双串口转I2C转SPI转JTAG转SWD USB2.0高速转接芯片CH347应用开发手册 2. CH341与CH347比较&#xff1a; 类别CH341CH347备注串口速度2M9MCH347的串口速度更快设置CH341的I2C或SPI不能与串口同…...

期权无风险套利(Risk-Free Arbitrage)举例以及期权无套利定价公式

期权市场的无风险套利 中文版 期权市场中的套利实例 为了清楚地说明&#xff0c;让我们通过一个现实的例子来展示套利。 期权市场中的套利实例 假设市场上有以下价格&#xff1a; 标的股票价格&#xff1a;100美元欧式看涨期权&#xff08;行权价100美元&#xff0c;3个月…...

Java基础知识巩固自测(上)

前言 该文章适用于已初步了解Java基础知识的入门学习者&#xff0c;便于快速回顾知识点&#xff0c;查漏补缺。 内容包括&#xff1a;Java面向对象相关知识、SQL基础语法 复习建议技巧 实用3W思维法&#xff08;What、Why、How&#xff09; 1. What&#xff08;什么&#x…...

通过 Python+Nacos实现微服务,细解微服务架构

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 背景 一直以来的想法比较多&#xff0c;然后就用Python编写各种代码脚本。很多…...

如何使用new和delete操作符进行动态内存分配和释放?

在C中&#xff0c;new 和 delete 操作符用于在堆&#xff08;heap&#xff09;上动态地分配和释放内存。这是管理内存的一种重要方式&#xff0c;特别是在需要创建可变数量或生命周期与程序执行流程不一致的对象时。 使用 new 进行动态内存分配 当你使用 new 操作符时&#x…...

【SCAU数据挖掘】数据挖掘期末总复习题库选择题及解析

1.将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?( C ) A.频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 解析:数据预处理是数据分析和数据挖掘的重要步骤之一,包括数据清洗、集成、变换、规约(如维度规约、数值规约)等。这…...

顶顶通呼叫中心中间件-限制最大通话时间(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-限制最大通话时间(mod_cti基于FreeSWITCH) 一、最大通话时间 1、配置拨号方案 1、点击拨号方案 ->2、在框中输入通话最大时长->3、点击添加->4、根据图中配置->5、勾选continue。修改拨号方案需要等待一分钟即可生效 action"sched…...

深度学习:使用argparse 模块

在深度学习中&#xff0c;结合 Bash 脚本和 argparse 模块&#xff0c;可以实现高效的任务自动化和参数管理。Bash 脚本可以用来调度任务和管理环境&#xff0c;而 argparse 模块可以用来解析命令行参数&#xff0c;控制深度学习模型的训练和评估过程。 1.argparse 模块 argp…...

unity text根据文本内容自动设置高度

我们经常会遇到需要根据文字数量动态修改文本框高度的需求&#xff0c;我们可以使用文本的行数*每行的高度来计算文本框的高度&#xff0c;伪代码如下&#xff1a; int oneLineHight 50;// 每行的像素高度 private void ResetTextHight(string str) {//设置文字内容ShowText.…...

ARM 汇编 C语言 for循环

在使用 Keil 编译基于 STM32F103 的 C 语言程序时&#xff0c;生成的汇编代码会有一些不同。STM32F103 是基于 ARM Cortex-M3 内核的微控制器&#xff0c;因为汇编语言是 ARM 汇编&#xff0c;而不是 x86 汇编。 示例 C 代码 假设我们有如下的简单 C 语言 for 循环代码&#x…...

java:【@ComponentScan】和【@SpringBootApplication】扫包范围的冲突

# 代码结构如下&#xff1a; 注意【com.chz.myBean.branch】和【com.chz.myBean.main】这两个包是没有生重叠的。 主程序【MyBeanTest1、MyBeanTest2、MyBeanTest3】这两个类是在包【com.chz.myBean.main】下 # 示例代码 【pom.xml】 <dependency><groupId>org.…...

本学期嵌入式期末考试的综合项目,我是这么出题的

时间过得真快&#xff0c;临近期末&#xff0c;又到了老师出卷的时候。作为《嵌入式开发及应用》这门课的主讲教师&#xff0c;今年给学生出的题目有一点点难度&#xff0c;最后的综合项目要求如下所示&#xff0c;各位学生朋友和教师同行可以评论一下难度如何&#xff0c;单片…...

CSS概述

CSS是一种样式表语言&#xff0c;用于为HTML文档控制外观&#xff0c;定义布局。例如&#xff0c; CSS涉及字体、颜色、边距、高度、宽度、背景图像、高级定位等方面 。 ● 可将页面的内容与表现形式分离&#xff0c;页面内容存放在HTML文档中&#xff0c;而用 于定义表现形式…...

Tensorflow-GPU工具包了解和详细安装方法

目录 基础知识信息了解 显卡算力 CUDA兼容 Tensorflow gpu安装 CUDA/cuDNN匹配和下载 查看Conda driver的版本 下载CUDA工具包 查看对应cuDNN版本 下载cuDNN加速库 CUDA/cuDNN安装 CUDA安装方法 cuDNN加速库安装 配置CUDA/cuDNN环境变量 配置环境变量 核验是否安…...

【python】OpenCV GUI——Trackbar(14.2)

学习来自 OpenCV基础&#xff08;12&#xff09;OpenCV GUI中的鼠标和滑动条 文章目录 GUI 滑条介绍cv2.createTrackbar 介绍牛刀小试 GUI 滑条介绍 GUI滑动条是一种直观且快速的调节控件&#xff0c;主要用于改变一个数值或相对值。以下是关于GUI滑动条的详细介绍&#xff1a…...

Qt自定义日志输出

Qt自定义日志输出 简略版&#xff1a; #include <QApplication> #include <QDebug> #include <QDateTime> #include <QFileInfo> // 将日志类型转换为字符串 QString typeToString(QtMsgType type) {switch (type) {case QtDebugMsg: return "D…...

[C++] vector list 等容器的迭代器失效问题

标题&#xff1a;[C] 容器的迭代器失效问题 水墨不写bug 正文开始&#xff1a; 什么是迭代器&#xff1f; 迭代器是STL提供的六大组件之一&#xff0c;它允许我们访问容器&#xff08;如vector、list、set等&#xff09;中的元素&#xff0c;同时提供一个遍历容器的方法。然而…...

Java——变量作用域和生命周期

一、作用域 1、作用域简介 在Java中&#xff0c;作用域&#xff08;Scope&#xff09;指的是变量、方法和类在代码中的可见性和生命周期。理解作用域有助于编写更清晰、更高效的代码。 2、作用域 块作用域&#xff08;Block Scope&#xff09;&#xff1a; 块作用域是指在…...

WPF界面设计

1、使用C#-WPF实现抽屉效果-炫酷漂亮的侧边栏导航菜单-SplitViewMD主题重绘原生控件的美观效果-提供源码Demo下载 码源地址&#xff1a;https://download.csdn.net/download/Prince999999/89424685 2、使用C#-WPF实现抽屉效果-菜单导航功能实现&#xff0c;常规的管理系统应该…...

【C#】使用JavaScriptSerializer序列化对象

在C#开发语言编程中&#xff0c;通常使用系统内置的JavaScriptSerializer类来序列化对象&#xff0c;以便将其转换为JSON格式的文本存储与后台服务通信, 在这里将为大家详细介绍一下这个过程。 文章目录 反序列化序列化忽略属性 假设处理的数据中有一个对象类, 如下 public cl…...

HTML静态网页成品作业(HTML+CSS)—— 明星吴磊介绍网页(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有5个页面。 二、作品演示 三、代…...

EasyRecovery2024数据恢复神器#电脑必备良品

EasyRecovery数据恢复软件&#xff0c;让你的数据重见天日&#xff01; 大家好&#xff01;今天我要给大家种草一个非常实用的软件——EasyRecovery数据恢复软件&#xff01;你是不是也曾经遇到过不小心删除了重要的文件&#xff0c;或者电脑突然崩溃导致数据丢失的尴尬情况呢&…...

前端HTML相关知识

1.什么是HTML HTML 指的是超文本标记语言 ( HyperText Markup Language )。 超文本:是指页面内可以包含图片、链接、声音,视频等内容 标记:标签(通过标记符号来告诉浏览器网页内容该如何显示) 浏览器根据不同的HTML标签&#xff0c;解析成我们看到的网页 2.HTML的特点 HTML不…...

集合面试题

目录 ①HashMap的理解&#xff1f;以及为什么要把链表转换为红黑树&#xff1f;②HashMap的put&#xff1f;③HashMap的扩容&#xff1f;④加载因子为什么是0.75&#xff1f;⑤modcount的作用&#xff1f;⑥HashMap与HashTable的区别&#xff1f;⑥HashMap中1.7和1.8的区别&am…...

集成学习概述

概述 集成学习(Ensemble learning)就是将多个机器学习模型组合起来&#xff0c;共同工作以达到优化算法的目的。具体来讲&#xff0c;集成学习可以通过多个学习器相结合&#xff0c;来获得比单一学习器更优越的泛化性能。集成学习的一般步骤为&#xff1a;1.生产一组“个体学习…...

记录一次root过程

设备: Redmi k40s 第一步&#xff0c; 解锁BL&#xff08;会重置手机系统&#xff01;&#xff01;&#xff01;所有数据都会没有&#xff01;&#xff01;&#xff01;&#xff09; 由于更新了澎湃OS系统, 解锁BL很麻烦, 需要社区5级以上还要答题。 但是&#xff0c;这个手机…...

群晖ds1817做网站/谷歌浏览器 安卓下载2023版官网

在Megaupload被关闭&#xff0c;资产扣押和关键成员被逮捕之后&#xff0c;为避免同样的命运&#xff0c;另一些文件共享网站开始采取行动调整其服务。Filesonic已经关闭了文件共享功能。Filesonic的声明称&#xff0c;用户只能上传和下载个人使用文件。在移除文件共享功能前&a…...

河南企起网站建设/做seo需要用到什么软件

一、定义变量和对象 函数基本描述var定义基本变量&#xff0c;主要包含数值型&#xff0c;字符型&#xff0c;逻辑性等&#xff1b;课同时定义多个变量&#xff1b;var test2 ‘2’&#xff0c;test3 3.1, test4 false;String文本本身不具备数据功能&#xff0c;即它通常不…...

哪个网站教做ppt/互联网营销的优势

本篇博客参考Laravel China 吴坷麟的文章 人人为我&#xff0c;我为人人&#xff01;向社区发布自己的 Composer 包 主要讲解如何上传Composer包到Packagist&#xff0c;并在Thinkphp5.0中使用。 1.Github上创建仓库&#xff0c;并pull至本地。在本地cmd运行&#xff1a; git c…...

wordpress系列文章实现/seo新闻

一、引例#1033 : 交错和时间限制:10000ms单点时限:1000ms内存限制:256MB描述给定一个数 x&#xff0c;设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an - 1&#xff0c;定义交错和函数&#xff1a;f(x)  a0 - a1  a2 - ...  ( - 1)n - 1an - 1例…...

学校网站建设厂家/活动策划方案

中国红十字总会救灾专用帐号热线四川震灾专题报道四川震灾滚动新闻转载于:https://blog.51cto.com/imysql/308633...

商城站时刻表/市场推广策略

正题 Portal 首先考虑x>y的情况&#xff0c;先说结论&#xff1a; 当给出的树是一个菊花图时&#xff0c;就必须走一条树边&#xff0c;否则可以构造出一条路径使得其不经过树边。 菊花图的时候&#xff0c;如果从根开始走&#xff0c;那么只能通过一条树边来到达其他点…...