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

leetcode hot100刷题日记——19.买卖股票的最佳时机

在这里插入图片描述
解答:

class Solution {
public:int maxProfit(vector<int>& prices) {//思路:买股票的时候希望自己在最低点买入,最高点卖出,但是有卖出点要在买入点后面的时间限制//而遍历,自然而然有“时间限制”//所以在一次遍历过程中,我们把每天都看成考虑要不要卖出去,假设自己之前是在最低点买入//更新最低价格//检查当前能不能得到最高利润,即maxx=max(maxx,prices[i]-minn);int minn=1e9;int maxx=0;int n=prices.size();if(n==1){return 0;}for(int i=0;i<n;i++){minn=min(minn,prices[i]);maxx=max(maxx,prices[i]-minn);}return maxx;}
};

时间复杂度:O(N)
空间复杂度:O(1)

看到题解说这也是一种动态规划的思想,我们来捋一下:
对于第i天,

  • 我们如果在前i-1天已经完成了一轮买卖操作,则第i天不能做任何操作,问题转化为dp[i-1]
  • 如果我们在前i-1天只是做了买入,在第i天卖出,那么在第0到第i天,进行一轮买卖操作,在这种情况下,卖出的价格一定是prices[i],那么买入价格一定是前i-1天中的最小值,即minn=min(prices[0],……prices[i-1]),收益就是prices[i]-minn
    而要使收益最大,dp[i]=max(dp[i-1],prices[i]-minn)
http://www.xdnf.cn/news/9158.html

相关文章:

  • `sysctl`命令深度剖析:如何优化内核参数以提升服务器网络/IO性能?
  • 百度ocr的简单封装
  • html5视频播放器和微信小程序如何实现视频的自动播放功能
  • 优雅草最新实战项目技术Discuz X3.5电子签约插件开发项目实施方案优雅草·卓伊凡
  • MicroPython 开发ESP32应用教程 之 线程介绍及实例分析
  • Android 启动优化
  • 使用堡塔和XShell
  • C++ STL stack容器使用详解
  • IoT/HCIP实验-1/物联网开发平台实验Part1(快速入门,MQTT.fx对接IoTDA)
  • 大型三甲医院更换HIS系统全流程分析与经验考察(上)
  • 【教程】给Apache服务器装上轻量级的防DDoS模块
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十七) -> 开发云函数
  • 基于 SpringBoot 与 VueJS 的智慧就业服务平台构建:技术融合与实践创新
  • jsAPI:Intl.DateTimeFormat 属性含义
  • 尚硅谷redis7 37-39 redis持久化之AOF简介
  • Vuex 模块化和命名空间:管理大型应用的状态
  • 【MYSQL】Linux下安装mysql 8,rpm包方式安装(保姆篇)
  • 【数据插入最大值后】2022-2-2
  • 【Redis】第2节|Redis基本数据类型
  • 信息学奥赛一本通 1547:【 例 1】区间和
  • 算法-全排列
  • 怎么预测体育比赛的胜率?
  • 曲线匹配,让数据点在匹配数据的一侧?
  • 第12次06 :用户中心添加邮箱
  • 【01】大模型原理与API使用
  • 【本地面板公网访问】本地面板也能公网访问?CasaOS+1Panel+cpolar保姆级教程
  • GeoServer样式设置:使用本地图标及分层/分视野显示
  • linux中使用make clean重新编译
  • 3dmax直接导入导出gltf/glb格式插件(免费)
  • 链表面试题10之随机链表的复制