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

121 买入股票的最佳时机

思路1:

买的那天一定是卖的那天之前的最小值。 每到一天,维护那天之前的最小值即可。

假设第一天是最小值,最大值初始化为0,当以后某天的价格小于最小值时,将最小值更新

当天价格大于最小值,说明有利可图,就取之前的最大值,和当天的收益之中的最大值当做最大值。
 

int maxProfit(int* prices, int pricesSize) 
{int maxleft;int minv=prices[0];if (pricesSize == 1)return 0;int i = 1;int j = 0;int maxv = 0;for(i; i < pricesSize; i++){if (prices[i] > minv){maxv = getmax(maxv, prices[i]-minv);}else{minv = prices[i];}}return maxv;
}

思路2:动态规划

状态:

  • dp[i][0] 第 i 天持有股票的最大剩余现金;
  • dp[i][1] 第 i 天不持有股票的最大剩余现金

初始化:

      dp[0][0] = 0            //不持有股票,不买入
      dp[0][1] = -prices[0]  //买入

状态转换:

        //第i天不持有股票,分两种情况,一种是已经卖出或一直没买入,那dp[i][0] = dp[i-1][0]

        第二种是卖出,i天的价位加上i-1的剩余价值。两种取最大值。

        dp[i][0] = getmax(dp[i-1][0], prices[i]+dp[i-1][0]); 

       //第i天持有股票,分两种,一种是刚买入,dp[i][1] = -prices[i], 第二种是保持持有dp[i][1] = dp[i-1][1]

        dp[i][1] = getmax( -prices[i],dp[i-1][1] )

int maxProfit(int* prices, int pricesSize) 
{int dp[pricesSize][2];memset(dp, 0, sizeof(dp));dp[0][0] = 0;dp[0][1] = -prices[0];if (pricesSize == 1)return 0;int i = 1;for(i; i < pricesSize; i++){//不持有股票=(卖出, 已经卖出)dp[i][0] = getmax(dp[i-1][0], prices[i]+dp[i-1][0]);//持有股票=(买入, 已经买入)dp[i][1] = getmax(dp[i-1][1], -prices[i]);}return dp[pricesSize-1][0];
}

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

相关文章:

  • PID学习资料
  • 采用标准化的方式开展设计-研发中运用设计模式
  • 【Linux系列】并发与顺序执行:在 Linux 脚本中的应用与选择
  • Scala语言的数据库交互
  • 字节青训十五题-Java-数字字符串格式化
  • 搭建一个本地轻量级且好用的学习TypeScript语言的环境
  • apex安装
  • 会员制电商创新:开源 AI 智能名片与 2+1 链动模式的协同赋能
  • Vue 3 和 Electron 来构建一个桌面端应用
  • 生物医学信号处理--绪论
  • STM32之CAN通讯(十一)
  • 在macOS上安装MySQL
  • netty解码器LengthFieldBasedFrameDecoder用法详解
  • 在循环链表中用头指针和用尾指针的好处
  • java项目之网上租贸系统源码(springboot+mysql+vue)
  • 我用AI学Android Jetpack Compose之入门篇(3)
  • get和post有什么区别
  • 编排式 Saga 模式
  • QT 下拉菜单设置参数 起始端口/结束端口/线程数量 端口扫描4
  • 缓存-Redis-常见问题-缓存击穿-永不过期+逻辑过期(全面 易理解)
  • 137. 只出现一次的数字 II
  • 【力扣热题100】—— Day18.将有序数组转换为二叉搜索树
  • PyTorch 官方文档 中文版本
  • 电力智能问答RAG: 多问题生成、思维链提示生成;混合编码和重排序策略
  • C#高级:递归4-根据一颗树递归生成数据列表
  • PDFelement 特别版
  • 云计算在医疗行业的应用
  • (转)rabbitmq怎么保证消息不丢失?
  • 每日一题:链表中环的入口结点
  • k8s里面etcd的作用