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

代码随想录算法训练营第三十二天|122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II

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

题目链接:122.买卖股票的最佳时机II

踩坑:差点陷入不必要的细节,比如怎么表现买入卖出,怎么体现同一天买入卖出

思路:这里的股票买卖是看了天眼,明天的涨跌今天就知道,那肯定是如果明天涨了我今天才买,因此,将每天的价格可视化出来,统计所有单调上升的总和即可。

代码:

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

LeetCode 55.跳跃游戏

题目链接:55.跳跃游戏

踩坑:不需要去纠结具体的跳跃路径,只要跳跃的范围能覆盖到结尾即可。

思路:每一个元素的值与其索引的和就是它能到达的最大索引,因此以能到达的最大索引为右边界,同时也不断维护最大索引即可。

class Solution {
public:bool canJump(vector<int>& nums) {int max = 0;int cur = 0;while(max < nums.size()-1 && cur <= max){if(max < nums[cur] + cur) max = nums[cur] + cur;cur++;}if(max >= nums.size()-1) return true;return false;}
};

LeetCode 45.跳跃游戏II

题目链接:45.跳跃游戏II

踩坑:无

思路:在确定当前最大覆盖范围后,向前遍历并不断维护今后能达到的最大范围直到遍历完当前最大范围,之后判断今后的最大范围能不能包含结尾,如果能则加一步即可完成任务,如果不能则加一步后更新最大覆盖范围继续遍历。

代码:

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

相关文章:

  • debian12安装时分区方案
  • 固定数量点云采样算法
  • 物资材料管理系统建设方案(Word)—实际项目方案
  • 【SQLAlChemy】如何定义ORM模型,如何映射到数据库?
  • [vulnhub]Lin.Security主机Linux提权
  • ReactRouter——路由配置、路由跳转、带参跳转、新route配置项
  • 安卓自动化之minicap截图
  • 数据库表中创建字段查询出来却为NULL?
  • C++输入输出与IO流
  • 【启明智显技术分享】sigmastar ssd202d双网口开发板多串口调试说明
  • 进阶篇01——存储引擎
  • [EFI]ASUS Vivobook 16x M1603QA 电脑 Hackintosh 黑苹果efi引导文件
  • web前端构建表单:深入探索与实践
  • DefaultTokenServices源码
  • 【Linux】进程5——进程优先级
  • .pyc 想到的一些问题
  • create-react-app做的留言板
  • JavaScript函数式编程(一)
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Node + FFmpeg 实现Canvas动画导出视频
  • PHP那些事儿
  • Python 基础起步 (十) 什么叫函数?
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • vue数据传递--我有特殊的实现技巧
  • vue自定义指令实现v-tap插件
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 工程优化暨babel升级小记
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 前端之Sass/Scss实战笔记
  • 《码出高效》学习笔记与书中错误记录
  • MyCAT水平分库
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #QT项目实战(天气预报)
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (C11) 泛型表达式
  • (HAL库版)freeRTOS移植STMF103
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (办公)springboot配置aop处理请求.
  • (分布式缓存)Redis持久化
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (四)汇编语言——简单程序
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)树状数组
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET MVC第五章、模型绑定获取表单数据
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET6 命令行启动及发布单个Exe文件
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .NET开发人员必知的八个网站
  • .NET企业级应用架构设计系列之应用服务器
  • .Net语言中的StringBuilder:入门到精通
  • [16/N]论得趣
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大