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

【代码随想录算法训练Day32】LeetCode 122 买卖股票的最佳时机 II、LeetCode 55.跳跃游戏、LeetCode 45.跳跃游戏II

Day32 贪心第二天

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

思路真是无比巧妙,把区间利润拆成每天的利润,其实就是算出每天的利润,然后只取其中的正值即可。
在代码中计算是否计算加时还与0取最大值,相当于大于0才加入。

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

LeetCode 55.跳跃游戏

本题的关键在于不再纠结我们如何跳,而是一直考虑最远能跳到哪里,也就是跳跃的覆盖范围,如果覆盖范围大于等于最后一个元素的下标,那就是能跳到,否则就跳不到了。

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

LeetCode 45.跳跃游戏II

本题的关键在于每次跳跃时都取能让跳跃覆盖范围变得更大的下一跳,而且我们也不用考虑应该怎么跳,只需要增加每一步能扩展的最大范围即可,只要范围比大于等于末尾元素的下标,那就成功了。

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

接下来是思维的考验了。

http://www.lryc.cn/news/369828.html

相关文章:

  • Qt之QGraphicsView —— 笔记3:矩形图元连接(附完整源码)
  • 2024年,计算机相关专业还值得选择吗?
  • 流批一体计算引擎-10-[Flink]中的常用算子和DataStream转换
  • Java进阶_多态特性
  • 一个热门的源码整站数据打包完整代码(开箱即用),集成了最新有效数据和完美wordpress主题。
  • 操作系统真象还原-第3章 完善MBR
  • 翻转链表-链表题
  • 【Android面试八股文】volatile和synchronize有什么区别?
  • linux flask | 接口保持在后台一直运行、python后端接口长期调用、python后台持续运行方法、python提供后端接口
  • 二分查找算法:穿越算法迷宫的指南
  • 【Week-R3】天气预测,引入探索式数据分析方法(EDA)
  • VBA excel 表格将多行拆分成多个表格或 文件 或者合并 多个表格
  • 利用Redis的队列模式实现消息的发送和订阅,适合分布式场景,Java实现代码
  • 软件下载安装【汇总】
  • 重定向文件访问(Redirect file access)
  • 隐私计算(1)数据可信流通
  • 果汁机锂电池充电,5V升压12.7V 升压恒压芯片SL1571B
  • 多个线程多个锁:如何确保线程安全和避免竞争条件
  • Linux-笔记 设备树插件
  • 【排序算法】总结篇
  • 鸿蒙开发文件管理:【@ohos.fileio (文件管理)】
  • 硬件工程师学习规划
  • esp32 8行代码实现蓝牙音响
  • 注册用户如何防止缓存穿透?
  • Presto基础知识
  • Ajax + Easy Excel 通过Blob实现导出excel
  • Qt+qss动态属性改变控件状态切换的样式
  • 纷享销客安全体系:安全运维运营
  • 富瀚微FH8322 ISP图像调试—BLC校正
  • 什么是大型语言模型 ?