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

算法D32 | 贪心算法2 | 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II

122.买卖股票的最佳时机II  

本题解法很巧妙,大家可以看题思考一下,在看题解。 

代码随想录P

只收集每天的正利润,利润可以每天分解。

Python:

class Solution:def maxProfit(self, prices: List[int]) -> int:if len(prices)<2: return 0maxProfit = 0curProfit = 0for i in range(1, len(prices)):curProfit = prices[i] - prices[i-1]if curProfit > 0:maxProfit += curProfitif curProfit < 0:curProfit = 0return maxProfit

C++:

class Solution {
public:int maxProfit(vector<int>& prices) {if (prices.size() < 2) return 0;int maxProfit = 0;int curProfit = 0;for (int i=1; i<prices.size(); i++) {curProfit = prices[i] - prices[i-1];if (curProfit > 0) maxProfit += curProfit;if (curProfit < 0) curProfit = 0;}return maxProfit;}
};

55. 跳跃游戏 

本题如果没接触过,很难想到,所以不要自己憋时间太久,读题思考一会,没思路立刻看题解 

代码随想录

关键思路:

其实跳几步无所谓,关键在于可跳的覆盖范围!

不一定非要明确一次究竟跳几步,每次取最大的跳跃步数,这个就是可以跳跃的覆盖范围。

这个范围内,别管是怎么跳的,反正一定可以跳过来。

Python:

Python不支持动态修改for循环中的变量。注意和C++版本的对比。

class Solution:def canJump(self, nums: List[int]) -> bool:if len(nums)==1: return Truecover = 0for i in range(len(nums)):if i<=cover:cover = max(i+nums[i], cover)if cover >= len(nums)-1:return True            return False

C++:

class Solution {
public:bool canJump(vector<int>& nums) {if (nums.size()==1) return true;int cover = 0;for (int i=0; i<=cover; i++) { // for循环里的cover是动态修改的cover = max(nums[i]+i, cover);if (cover >= nums.size()-1) return true;}return false; }
};

45.跳跃游戏II 

本题同样不容易想出来。贪心就是这样,有的时候 会感觉简单到离谱,有时候,难的不行,主要是不容易想到。

代码随想录

局部最优:当前可移动距离尽可能多走,如果还没到终点,步数再加一。

整体最优:一步尽可能多走,从而达到最少步数。

所以真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最少步数!

移动下标达到了当前覆盖的最远距离下标时,步数就要加一,来增加覆盖距离。最后的步数就是最少步数。

这里还是有个特殊情况需要考虑,当移动下标达到了当前覆盖的最远距离下标时

  • 如果当前覆盖最远距离下标不是是集合终点,步数就加一,还需要继续走。
  • 如果当前覆盖最远距离下标就是是集合终点,步数不用加一,因为不能再往后走了。

Python:

class Solution:def jump(self, nums: List[int]) -> int:n = len(nums)if n==1: return 0cur_cover = next_cover = 0ans = 0for i in range(n):next_cover = max(nums[i]+i, next_cover)if i==cur_cover:ans += 1cur_cover = next_coverif next_cover >= n-1:breakreturn ans

C++:

class Solution {
public:int jump(vector<int>& nums) {if (nums.size()==1) return 0;int curCover = 0;int nextCover = 0;int ans = 0;for (int i=0; i<nums.size(); i++) {nextCover = max(nums[i]+i, nextCover);if (i==curCover) {ans++;curCover = nextCover;if (nextCover>=nums.size()-1) break;}}return ans;}
};

相关文章:

算法D32 | 贪心算法2 | 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II

122.买卖股票的最佳时机II 本题解法很巧妙&#xff0c;大家可以看题思考一下&#xff0c;在看题解。 代码随想录P 只收集每天的正利润&#xff0c;利润可以每天分解。 Python: class Solution:def maxProfit(self, prices: List[int]) -> int:if len(prices)<2: retur…...

【iOS ARKit】协作 Session 实例

协作 Session 使用注意事项 协作 Session 是在 ARWorldMap 基础上发展起来的技术&#xff0c;ARWorldMap 包含了一系列的地标、ARAnchor 及在观察这些地标和 ARAnchor 时摄像机的视场&#xff08;View&#xff09;。如果用户在某一个位置新创建了一个 ARAnchor&#xff0c;这时…...

云原生精品资料合集(附下载)

云计算是产业数字化转型的关键基础设施,以基础设施资源为中心的云搬迁时代接近尾声&#xff0c;以应用价值为中心的云原生时代已经到&#xff0c;所以IT人员学习云原生正当时&#xff01;最近跟各位大神征集了云原生的教程&#xff0c;行业报告和最佳实践&#xff0c;总有一款适…...

JVM 第一部分 JVM两种解释器 类加载过程和类加载器

JVM是跨平台跨语言的虚拟机&#xff0c;不直接接触硬件&#xff0c;位于操作系统的上一层 跟字节码文件直接关联&#xff0c;和语言没有关系 一次编译成字节码文件&#xff0c;多次执行 虚拟机可以分成三部分&#xff1a;类加载器&#xff0c;运行时数据区&#xff0c;执行引…...

用Java语言创建的Spring Boot项目中,如何传递数组呢??

问题&#xff1a; 用Java语言创建的Spring Boot项目中&#xff0c;如何传递数组呢&#xff1f;&#xff1f; 在这个思路中&#xff0c;其实&#xff0c;Java作为一个后端开发的语言&#xff0c;没必要着重于如何传入&#xff0c;我们主要做的便是对传入的数组数据进行处理即可…...

[笔记] 使用 Java Swing 实现一个简单的窗口

Java Swing 是一个用于构建图形用户界面&#xff08;GUI&#xff09;的Java库&#xff0c;它提供了丰富的组件和工具&#xff0c;用于创建交互式的桌面应用程序。Swing 是 Java Foundation Classes&#xff08;JFC&#xff09;的一部分&#xff0c;它是 Java 平台的一种标准用户…...

2024.03.03蓝桥云课笔记——排序

sort简介 #include<algorithm> 使用的是快速排序 时间复杂度为O(nlogn) sort使用(默认是从小到大) 1.sort(起始地址&#xff0c;结束地址的下一位&#xff0c;*比较函数&#xff09;&#xff1b; #include<iostream> #include<algorithm> using namesp…...

Vue3和ElementPlus封装table组件

最近学习vue3.2并自己在写一个项目&#xff0c;然后发现好几个页面都是列表页&#xff0c;重复写table和column也是觉得累&#xff0c;学习的项目列表页不算多&#xff0c;要是公司项目就不一样了&#xff0c;所以就想着自己封装一个table组件&#xff0c;免去大量重复工作和co…...

第一篇:参考资料地址

javaGuide JavaGuide&#xff08;Java学习&面试指南&#xff09; | JavaGuide 清华学生总结的 小林coding labuladong labuladong 的算法笔记 | labuladong 的算法笔记 【华仔说技术】kafka的系列文章 https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg3MTcxMDgxNA…...

wordpress 开源主题

海外就医wordpress主题 出国看病、海外就医是越来越多中产家庭的选择&#xff0c;此wordpress主题适合做相关业务的公司官网。 https://www.jianzhanpress.com/?p5220 防护wordpress外贸主题 个人防护器具wordpress外贸主题&#xff0c;适合做劳动保护的外贸公司使用。 ht…...

【Linux网络命令系列】ping curl telnet三剑客

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

于月仙主动与赵本山握手表示欢迎,赵:怎么着要跟我第二次牵手啊?

于月仙主动与赵本山握手表示欢迎&#xff0c;赵&#xff1a;怎么着要跟我第二次牵手啊&#xff1f; --小品《乡村爱情》&#xff08;中1&#xff09;的台词 表演者&#xff1a;赵本山 于月仙 王小利 唐鉴军等 &#xff08;接上&#xff09; 咱们呢就给新人揭盖头 好 好长贵…...

Unity UGUI之Slider基本了解

在Unity中&#xff0c;Slider&#xff08;滑动条&#xff09;是一种常用的用户界面控件之一&#xff0c;允许用户通过拖动滑块来选择一个数值。常常应用于调节数值&#xff08;如调节音量、亮度、游戏难度等&#xff09;、设置选项等。 以下是Slider的基本信息和用法: 1、创建…...

【Linux】进程间通信之共享内存

文章目录 引入共享内存的原理共享内存的相关接口shmget()shmat()shmdt()shmctl() 共享内存的简单使用共享内存的特点 引入 进程间通信&#xff0c;顾名思义就是一个进程和另一个进程之间进行对话&#xff0c;以此完成数据传输、资源共享、通知事件或进程控制等。 众所周知&am…...

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于条件风险价值的虚拟电厂参与能量及备用市场的双层随机优化》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 这篇文章的标题涉及到以下几个关键点…...

前端架构: 脚手架通用框架封装之CommonJS和ESM混合开发兼容解决(教程五)

CommonJS 和 ESModule 混合开发 接上文&#xff0c;仍旧在 abc-cli 项目中参考&#xff1a;https://blog.csdn.net/Tyro_java/article/details/136433159现在要在脚手架项目中安装 chalk 依赖&#xff0c;因为在 abc-cli 项目几乎都是 CommonJS的实现而 chalk 这个依赖源码是基…...

基于主从模式的Reactor的仿muduo网络库

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…...

Linux服务器搭建超简易跳板机连接阿里云服务器

简介 想要规范内部连接阿里云云服务器的方式&#xff0c;但是最近懒病犯了&#xff0c;先搞一个简易式的跳板机过渡一下&#xff0c;顺便在出一个教程&#xff0c;其他以后再说&#xff01; 配置方法 创建密钥 登录阿里云&#xff0c;找到云服务器ECS控制台&#xff0c;点击…...

Windows Server 各版本搭建文件服务器实现共享文件(03~19)

一、Windows Server 2003 打开服务器&#xff0c;点击左下角开始➡管理工具➡管理您的服务器➡添加或删除角色 点击下一步等待测试 勾选自定义配置&#xff0c;点击下一步 选择文件服务器&#xff0c;点击下一步 勾选设置默认磁盘空间&#xff0c;数据自己更改&#xff0c;最…...

ARM总结and复习

安装交叉编译工具链 a. 为什么安装 因为arm公司的指令集在不断迭代升级&#xff0c;指令集日益增多,而架构是基于指令集研发的&#xff0c;所以架构不一样&#xff0c;指令集也不一样 eg:arm架构使用的是arm指令集 x86架构使用的是x86指令集 而我们日常开发环境中linux的架构…...

开源番茄小说下载工具:让数字阅读摆脱平台依赖的完整方案

开源番茄小说下载工具&#xff1a;让数字阅读摆脱平台依赖的完整方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 当你在通勤途中想继续阅读昨晚未看完的小说&#xff0c;却发现网络信号…...

SenseVoice实战:搭建智能客服语音质检系统,自动检测咳嗽清嗓等事件

SenseVoice实战&#xff1a;搭建智能客服语音质检系统&#xff0c;自动检测咳嗽清嗓等事件 在客服中心的质量检查工作中&#xff0c;质检人员每天需要监听大量通话录音&#xff0c;手动标记出咳嗽、清嗓等非语音事件。传统人工质检方式不仅效率低下&#xff0c;而且容易因疲劳…...

PyTorch深度学习框架之多分类交叉熵实现图像分类

目录&#xff1a;一、自定义小CNN实现手机分类1、代码示例2、代码解析一、自定义小CNN实现手机分类 1、代码示例 适合苹果/华为/小米 3分类手机识别&#xff0c;你可以直接改类别数适配你的任务&#xff1a; import torch import torch.nn as nn import torch.nn.functional…...

WarcraftHelper完整指南:3步解决魔兽争霸3在现代电脑上的兼容性问题

WarcraftHelper完整指南&#xff1a;3步解决魔兽争霸3在现代电脑上的兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典游戏《魔兽…...

OpenClaw飞书集成:Kimi-VL-A3B-Thinking多模态机器人配置教程

OpenClaw飞书集成&#xff1a;Kimi-VL-A3B-Thinking多模态机器人配置教程 1. 为什么选择OpenClaw飞书Kimi-VL-A3B-Thinking组合 去年我在处理团队知识库时&#xff0c;发现一个痛点&#xff1a;每当同事在飞书群聊里分享产品截图或设计稿时&#xff0c;总要手动保存图片再上传…...

seo网络公司如何进行外链建设

SEO网络公司如何进行外链建设 在当今数字营销的世界里&#xff0c;外链建设是一个至关重要的环节。对于SEO网络公司来说&#xff0c;如何高效、合规地进行外链建设&#xff0c;不仅能提升网站的权重&#xff0c;还能带来更多的流量和业务机会。本文将深入探讨SEO网络公司如何进…...

SOONet企业私有化部署:Kubernetes Helm Chart编排+PV持久化模型存储

SOONet企业私有化部署&#xff1a;Kubernetes Helm Chart编排PV持久化模型存储 1. 项目概述 SOONet&#xff08;Scanning Only Once Network&#xff09;是一款基于自然语言输入的长视频时序片段定位系统&#xff0c;能够通过单次网络前向计算精确定位视频中的相关片段。对于…...

新媒体人AI工作流:从选题到爆款,一篇文章搞定全流程

选题挖掘与验证通过社交媒体热点追踪工具&#xff08;如微博热搜、抖音热榜&#xff09;或第三方数据平台&#xff08;新榜、清博&#xff09;筛选近期高互动话题。结合行业垂直类账号的爆款内容&#xff0c;分析标题关键词和用户评论倾向&#xff0c;确保选题具备传播潜力。数…...

Nunchaku FLUX.1 CustomV3实战:用简单描述生成赛博朋克、水墨风等多样作品

Nunchaku FLUX.1 CustomV3实战&#xff1a;用简单描述生成赛博朋克、水墨风等多样作品 你是否曾经想象过&#xff0c;只需输入一句话&#xff0c;就能让AI为你创作出风格各异的精美画作&#xff1f;今天我们要深入探索的Nunchaku FLUX.1 CustomV3镜像&#xff0c;正是这样一个…...

卡客车选胎别只看价格!这套判断逻辑让你少花冤枉钱

在商用车运输领域&#xff0c;轮胎选型是绕不开的话题&#xff0c;而绝大多数卡友在选胎时&#xff0c;都会陷入 “唯价格论” 的误区&#xff0c;认为单条轮胎越便宜&#xff0c;运营成本越低。但实际运营中&#xff0c;无数案例证明&#xff1a;价格从来不是决定轮胎价值的核…...