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

买卖股票的最佳时机

dp[i][0] 表示第i天持有股票所得最多现金,相当于买的价格最低,卖的价格最高

持有股票状态为0,不持有为1

用二维数组表示天数和是否持有,

i-1天就持有,或者第i天买入

class Solution {public int maxProfit(int[] prices) {if(prices.length==0||prices==null) return 0;int len=prices.length;int[][] dp=new int[len][2]; //dp[][0-1]表示第i天,持不持有股票的最大现金dp[0][0]=-prices[0];dp[0][1]=0;for(int i=1;i<len;i++){dp[i][0]=Math.max(dp[i-1][0],-prices[i]);//前一天就持有的现金,或者今天才买入dp[i][1]=Math.max(dp[i-1][1],dp[i][0]+prices[i]);//前一天已经不持有股票的现金,或者今天才卖出}return dp[len-1][1];}
}

可以进行多次买卖

class Solution {public int maxProfit(int[] prices) {//0持有,1不持有int len=prices.length;int[][] dp=new int[len][2];dp[0][0]=-prices[0];dp[0][1]=0;for(int i=1;i<len;i++){dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-prices[i]);//持有的最大金额dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]+prices[i]);}return dp[len-1][1];}
}

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

相关文章:

  • Linux部署安装
  • docker搭建mysql集群实现主从复制
  • Neo4j 之安装和 CQL 基本命令学习
  • 【全开源】JAVA台球助教台球教练多端系统源码支持微信小程序+微信公众号+H5+APP
  • 机器学习-如何为模型选择评估指标?
  • 【AutoGPT】踩坑帖(follow李鱼皮)
  • 机器学习-L1正则/L2正则
  • Linux——socket编程之tcp通信
  • HTTP协议介绍
  • elasticsearch安装配置注意事项
  • Istio 流量管理(请求路由、流量转移、请求重试、流量镜像、故障注入、熔断等)介绍及使用
  • Transformers中加载预训练模型的过程剖析
  • 使用MCU的 GPIO口 模拟SDIO时序读写TF/SD卡的可能性。
  • SSM【Spring SpringMVC Mybatis】——Mybatis(二)
  • 在线教育系统在线网校报价,培训机构是怎样招聘老师的?流程是什么?
  • 您的文件和驱动器上的“密码保护”有多安全?
  • 4000字超详解Linux权限
  • SearXNG - 一个注重隐私的互联网元搜索引擎
  • (第15天)【leetcode题解】459、重复的子字符串
  • PostgreSQL的学习心得和知识总结(一百四十二)|深入理解PostgreSQL数据库数据库之 Continuous Integration
  • 【外币兑换,简单贪心】
  • 数据库入门(sql文档+命令行)
  • 【机器学习300问】84、AdaGrad算法是为了解决什么问题?
  • Java算法-力扣leetcode-14. 最长公共前缀
  • 视频拼接融合产品的产品与架构设计(二)
  • 【docker 】push 镜像到私服
  • Java框架精品项目【用于个人学习】
  • 每周一算法:无向图的最小环
  • 分布式websocket IM即时通讯聊天开源项目如何启动
  • tensorflow学习笔记(1)环境准备写个简单例子(小白手册)-20240506