代码随想录第32天|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
文章目录
- 买卖股票
- 思路一:贪心
- 代码:
- 思路:动态规划
- 代码:
- 跳跃游戏
- 思路:贪心找最大范围
- 代码:
- 跳跃游戏②
- 思路:
- 代码:
- 方法二:处理方法一的特殊情况
买卖股票
思路一:贪心
代码:
// 贪心思路
class Solution {public int maxProfit(int[] prices) {int result = 0;for (int i = 1; i < prices.length; i++) {//如果为正result += Math.max(prices[i] - prices[i - 1], 0);}return result;}
//或者
class Solution {public int maxProfit(int[] prices) {int res=0;for(int i=1;i<prices.length;i++){//如果递增if(prices[i]>prices[i-1]){res+=prices[i]-prices[i-1];}}return res;}
}
思路:动态规划
代码:
class Solution {public int maxProfit(int[] prices) {int[][] dp=new int[prices.length][2];dp[0][0]=-prices[0];dp[0][1]=0;for (int i = 1; i < prices.length; i++) {dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-prices[i]);dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]+prices[i]);}return Math.max(dp[prices.length-1][0],dp[prices.length-1][1]);}
}
跳跃游戏
思路:贪心找最大范围
代码:
class Solution {public boolean canJump(int[] nums) {if (nums.length == 1) {return true;}//覆盖范围, 初始覆盖范围应该是0,因为下面的迭代是从下标0开始的int cover=0;//在覆盖范围内更新最大的覆盖范围for(int i=0;i<=cover;i++){cover=Math.max(cover,i+nums[i]);//cover:当前步数覆盖范围 i+nums[i]扩展范围if(cover>=nums.length-1)return true;}return false;}
}
跳跃游戏②
思路:
记录这一步的最大覆盖范围,在这个覆盖范围里,去找里面包含的(下一步能达到的最大覆盖范围)。按照最大覆盖范围去跳,次数就会最少。
每找到一次覆盖范围则相当于跳跃了一次
代码:
遇到终点则停止
class Solution {public int jump(int[] nums) {if (nums.size() == 1) return 0;//单一数组int curdis=0; // 当前覆盖最远距离下标int nextdis=0; // 下一步覆盖最远距离下标int ans=0; // 记录走的最大步数for (int i = 0; i < nums.length; i++) {nextdis=Math.max(nextdis,i+nums[i]);// 更新下一步覆盖最远距离下标if(i==curdis){ // 遇到当前覆盖最远距离下标ans++;curdis = nextdis;if(nextdis>=nums.length-1)break;}}return ans;}
}
方法二:处理方法一的特殊情况
// 版本二
class Solution {public int jump(int[] nums) {int result = 0;// 当前覆盖的最远距离下标int curdis = 0;// 下一步覆盖的最远距离下标int nextdis = 0;for (int i = 0; i < nums.length - 1; i++) {nextdis = Math.max(nextdis, i + nums[i]);// 可达位置的改变次数就是跳跃次数if (i == curdis) {curdis = nextdis;result++;}}return result;}
}
相关文章:

代码随想录第32天|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
文章目录 买卖股票思路一:贪心代码: 思路:动态规划代码: 跳跃游戏思路:贪心找最大范围代码: 跳跃游戏②思路:代码: 方法二:处理方法一的特殊情况 买卖股票 思路一&#x…...

线性代数的本质 2 线性组合、张成的空间、基
基于3Blue1Brown视频的笔记 一种新的看待方式 对于一个向量,比如说,如何看待其中的3和-2? 一开始,我们往往将其看作长度(从向量的首走到尾部,分别在x和y上走的长度)。 在有了数乘后࿰…...

- 工程实践 - 《QPS百万级的有状态服务实践》01 - 存储选型实践
本文属于专栏《构建工业级QPS百万级服务》 《QPS百万级的无状态服务实践》已经完成。截止目前为止,支持需求“给系统传入两个日期,计算间隔有多少天”的QPS百万级服务架构已经完成。如图1: 图1 可是这个架构不能满足需求“给系统传入两个日期…...

SECS/GEM的HSMS通讯?金南瓜方案
High Speed SECS Message Service (HSMS) 是一种基于 TCP/IP 的协议,它使得 SECS 消息通信更加快速。这通常用作设备间通信的接口。 HSMS 状态逻辑变化(序列): 1.Not Connected:准备初始化 TCP/IP 连接,但尚…...

wayland(xdg_wm_base) + egl + opengles——dma_buf 作为纹理数据源(五)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、EGL dma_buf import 相关的数据结构和函数1. EGLImageKHR2. eglCreateImageKHR()3. glEGLImageTargetTexture2DOES()二、egl 中 import dma_buf 作为纹理的代码实例1. egl_wayland_dmabuf_…...
【VTKExamples::PolyData】第二十八期 LinearExtrusion
很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例LinearExtrusion,并解析接口vtkLinearExtrusionFilter,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 目录…...

Linux操作系统基础(五):Linux的目录结构
文章目录 Linux的目录结构 一、Linux目录与Windows目录区别 二、常见目录介绍(记住重点) Linux的目录结构 一、Linux目录与Windows目录区别 Linux的目录结构是一个树型结构 Windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘 Linux 没有盘符 这个概…...

SolidWorks如何在一个零件的基础上绘制另一个零件
经过测试,新建零件,然后插入零件a,在a的基础上绘制b,这种做法无法断开a与b的联系。虽然可以通过切除命令,切除b,但不是正途。 在装配体中可以实现: (1)建立装配体 (2&…...
gin(结)
gin day1 今天的目标就是学懂,看懂每一步代码。 gin框架 gin框架就是go语言的web框架。框架你也可以理解成一个库。里面有一堆封装好的工具,帮你实现各种各样的功能,这样使得你可以关注业务本身,而在写代码上少费力。 快速入门&…...
JavaScript 设计模式之桥接模式
桥接模式 通过桥接模式,我们可以将业务逻辑与元素的事件解耦,也可以更灵活的创建一些对象 倘若我们有如下代码 const dom document.getElementById(#test)// 鼠标移入移出事件 // 鼠标移入时改变背景色和字体颜色 dom.onmouseenter function() { th…...
B3651 [语言月赛202208] 数组调整
题目描述 给出一个长度为 n 的数组,第 i 个数为ai。 为了调整这个数组,需要将第 k 个数改变为 −ak。 请你求出调整后的数组中所有数的和。 输入格式 输入共两行。 输入的第一行为两个整数 n,k。 输入的第二行为 n 个整数,第 i 个…...

MessageQueue --- RabbitMQ
MessageQueue --- RabbitMQ RabbitMQ IntroRabbitMQ 核心概念RabbitMQ 分发类型Dead letter (死信)保证消息的可靠传递 RabbitMQ Intro 2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,…...

WordPress作者页面链接的用户名自动变成16位字符串串插件Smart User Slug Hider
WordPress默认的作者页面URL链接地址格式为“你的域名/author/admin”,其中admin就是你的用户名,这样的话就会暴露我们的用户名。 为了解决这个问题,前面boke112百科跟大家分享了『如何将WordPress作者存档链接中的用户名改为昵称或ID』一文…...

Nvidia 携手 RTX 推出的本地运行 AI 聊天机器人
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

年假作业day2
1.打印字母图形 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) { int i,j; char k; for(i1;i<7;i) { for(j1;j<i;j) { printf("%c",_); } for(j0,…...

HTML-多媒体嵌入-MDN文档学习笔记
HTML-多媒体与嵌入 查看更多学习笔记:GitHub:LoveEmiliaForever MDN中文官网 HTML-中的图片 将图片放入网页 可以使用<img/>来将图片嵌入网页,它是一个空元素,最少只需src属性即可工作 <img src"图片链接"…...
openJudge | 距离排序 C语言
总时间限制: 1000ms 内存限制: 65536kB 描述 给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离。 输入 输入包括两行,第一行包含一个整数n表示点的个数,第二…...

【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)
写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 第三章 《数据定义语言DDL》 文章目录 【MyS…...
[leetcode]买卖股票的最佳时机 (动态规划)
121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…...

隐函数的求导【高数笔记】
1. 什么是隐函数? 2. 隐函数的做题步骤? 3. 隐函数中的复合函数求解法,与求导中复合函数求解法有什么不同? 4. 隐函数求导的过程中需要注意什么?...
uniapp 对接腾讯云IM群公告功能
UniApp 实战:腾讯云IM群公告功能 一、前言 在即时通讯场景中,群公告是信息同步的重要渠道。本文将基于uniapp框架,结合腾讯云IM SDK,详细讲解如何实现群公告的发布、修改、历史记录查询等核心功能。 群公告的数据结构设计权限校…...
Scade 语言概念 - 方程(equation)
在 Scade 6 程序中自定义算子(Operator)的定义、或数据流定义(data_def)的内容中,包含一种基本的语言结构:方程(equation)(注1)。在本篇中,将叙述 Scade 语言方程的文法形式,以及作用。 注1: 对 Scade 中的 equation, 或 equation…...

【Kubernetes】K8s 之 ETCD - 恢复备份
ETCD 是一个高可用的分布式键值存储,常用于存储配置信息和服务发现等。当系统出现故障或数据损坏时,能够快速恢复成先前的状态是维护系统稳定性的关键。ETCD 提供了备份和恢复功能,以确保数据持久性和可靠性,一起来看看如何操作吧…...
Python 数据类型转换、编码处理与文件操作实战指南
一、数据类型转换 int (整型) 与 str (字符串) 之间: str 转 int:int("123") (要求字符串内容必须是数字)。 int 转 str:str(123)。 规则: 使用目标类型的英文名加括号包裹原数据即可。 list (列表) 与 tuple (元组…...

VUE前端实现自动打包成压缩文件
VUE前端实现自动打包成压缩文件 背景思路实现打包代码实现 尾巴 背景 做前端开发的兄弟们都经历过每次开发完成之后发包需要进行打包,然后将打包文件压缩。每次打好包了都得手动压缩一遍,就有点繁琐。今天我们就使用一种命令行自动压缩的方法࿰…...
策略模式实战:Spring中动态选择商品处理策略的实现
概念 可以在运行时期动态的选择需要的具体策略类,处理具体的问题 组成元素 策略接口 public interface GoodsStrategy {void handleGoods(); } 具体策略类 Service(Constants.BEAN_GOODS) public class BeanGoodsStrategy implements GoodsStrategy {Override…...
GitHub 趋势日报 (2025年06月05日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 1472 onlook 991 HowToCook 752 ChinaTextbook 649 quarkdown 451 scrapy 324 age…...
鸿蒙图片缓存(一)
移动端开发过程中图片缓存功能是必备,iOS和安卓都有相关工具库,鸿蒙系统组件本身也自带缓存功能,但是遇到复杂得逻辑功能还是需要封装图片缓存工具。 系统组件Image 1. Image的缓存策略 Image模块提供了三级Cache机制,解码后内…...
leetcode47.全排列II:HashSet层去重与used数组枝去重的双重保障
一、题目深度解析与重复排列问题 题目描述 给定一个可能包含重复数字的数组nums,返回其所有不重复的全排列。解集不能包含重复的排列,且排列可以按任意顺序返回。例如: 输入:nums [1,1,2]输出:[[1,1,2],[1,2,1],[2…...
【Qt】:设置新建类模板
完整的头文件模板 #ifndef %FILENAME%_H #define %FILENAME%_H/*** brief The %CLASSNAME% class* author %USER%* date %DATE%*/ class %CLASSNAME% { public:%CLASSNAME%();~%CLASSNAME%();// 禁止拷贝构造和赋值%CLASSNAME%(const %CLASSNAME%&) delete;%CLASSNAME%&a…...