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

day32 买卖股票的最佳时机Ⅱ 跳跃游戏 跳跃游戏Ⅱ

题目1:122  买卖股票的最佳时机Ⅱ

题目链接:122 买卖股票的最大时机Ⅱ

题意

整数数组prices[i]表示某股票的第i天的价格,每天可买卖股票且最多持有1股股票,返回最大利润

利润拆分,拆分为每天的利润      每天的正利润相加  得到总利润

局部最优:只收获每天的正利润  全局最优:利润最大

代码

class Solution {
public:int maxProfit(vector<int>& prices) {int result = 0;for(int i=1;i<prices.size();i++){if(prices[i]-prices[i-1]>0) result += prices[i]-prices[i-1];}return result;}
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

题目2:55 跳跃游戏

题目链接:55 跳跃游戏

题意

非负整数数组数组中的每个元素代表在该位置可以跳跃的最大长度  是否能够到达最后一个下标

当前处于数组的第一个下标处

不看每次具体跳几步,只看覆盖范围是否包含终点  在覆盖范围内的位置都可以被跳到

局部最优:每次取最大的覆盖范围    全局最优:得到最大的覆盖范围

代码

class Solution {
public:bool canJump(vector<int>& nums) {int cover = 0;for(int i=0;i<=cover;i++){//更新覆盖范围cover = max(cover,i+nums[i]);if(cover>=nums.size()-1) return true;}return false;}
};
  • 时间复杂度: O(n)
  • 空间复杂度: O(1)

题目3:45 跳跃游戏Ⅱ

题目链接:45 跳跃游戏Ⅱ

题意

非负整数数组元素nums[i]表示可以跳转的最大长度,返回到达最后一个元素的最小跳跃次数,初始位置为nums[0]

每一步尽可能地往远跳,一旦跳到终止位置,最少的跳跃步数增加覆盖范围

代码

class Solution {
public:int jump(vector<int>& nums) {int cur = 0;int next = 0;int result = 0;for(int i=0;i<nums.size();i++){next = max(next, i + nums[i]);if(i==cur){if(cur!=nums.size()-1){result++;cur = next;if(cur>=nums.size()-1) break;}}}return result;}
};
  • 时间复杂度: O(n)
  • 空间复杂度: O(1)

相关文章:

  • springboot jar包编写启动start.sh
  • AI新宠Arc浏览器真可以取代Chrome吗?
  • C#入门及进阶教程|C#基本语法(五):控制台应用程序与格式化输出
  • 【NTN 卫星通信】TN 和 NTN的Inter-PLMN应用场景
  • 【Django】Cookie和Session的使用
  • python将.db数据库文件转成Excel文档
  • VCG 网格中点细分
  • VMware虚拟机安装macOS
  • 政安晨:示例演绎Python语言的字符串与字典
  • ywtool login guard命令
  • 虚幻5源码版打包服务端
  • React 组件跨层级数据共享:createContext、useContext、useMemo
  • spring boot打完jar包后使用命令行启动,提示xxx.jar 中没有主清单属性
  • ReactNative实现一个圆环进度条
  • Docker进阶篇-Docker网络
  • Bytom交易说明(账户管理模式)
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • HTML5新特性总结
  • PermissionScope Swift4 兼容问题
  • PHP 小技巧
  • react 代码优化(一) ——事件处理
  • react-native 安卓真机环境搭建
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 大整数乘法-表格法
  • 反思总结然后整装待发
  • 观察者模式实现非直接耦合
  • 后端_ThinkPHP5
  • 那些年我们用过的显示性能指标
  • 前端临床手札——文件上传
  • 数据结构java版之冒泡排序及优化
  • 我建了一个叫Hello World的项目
  • 项目管理碎碎念系列之一:干系人管理
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 追踪解析 FutureTask 源码
  • 自定义函数
  • 关于Android全面屏虚拟导航栏的适配总结
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (分类)KNN算法- 参数调优
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)我也是一只IT小小鸟
  • .NET Core跨平台微服务学习资源
  • .Net7 环境安装配置
  • .sh
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [bzoj1912]异象石(set)
  • [bzoj2957]楼房重建
  • [bzoj4240] 有趣的家庭菜园
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [Deep Learning] 神经网络基础