原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/

这类股票题目请见leetcode算法题–最佳买卖股票时机含冷冻期下面的参考链接,里面有全系列解法

动态规划:

dp[i][k][j] i表示第i天,k表示交易几次,j取0或1表示卖出或持有,dp表示花费

转移方程

dp[i][k][0]=max(dp[i-1][k][0],dp[i-1][k][1]+prices[i])
dp[i][k][1]=max(dp[i-1][k][1],dp[i-1][k-1][0]-prices[i])

这里k=1,所以公式有

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

dp[i-1][0][0]表示不能再交易,故为0。所以公式简化为

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

再简化

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

故代码:

int maxProfit(vector<int>& prices) {int n=prices.size();if(n==0) return 0;vector<vector<int>> dp(n,vector<int>(2,0));dp[0][0]=0;dp[0][1]=-prices[0];for(int i=1;i<n;i++){dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]);dp[i][1]=max(dp[i-1][1],-prices[i]);}return dp[n-1][0];
}

leetcode算法题-- 买卖股票的最佳时机相关推荐

  1. leetcode算法题--买卖股票的最佳时机 II

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 这类股票题目请见leetcode算法题–最佳买卖股票 ...

  2. leetcode算法题--买卖股票的最佳时机含手续费

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 这类股票题目请见 ...

  3. 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java

    <LeetCode力扣练习>第121题 买卖股票的最佳时机 Java 一.资源 题目: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价 ...

  4. _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II 、55.跳跃游戏、45.跳跃游戏II

    _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II .55.跳跃游戏.45.跳跃游戏II 题目列表 122.买卖股票的最佳时机II 55.跳跃游戏 45 ...

  5. 代码随想录算法训练营第三十二天_第八章_贪心算法 | 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

    LeetCode 122.买卖股票的最佳时机II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格.设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票 ...

  6. 力扣121题买卖股票的最佳时机 简单容易明白

    博主最近在力扣上做算法题,一天一道,可以跟着我来练习,有啥不会的可以留言,或者不理解力扣上面哪道可以进行留言.有啥不会的题也可以留言,仅限于简单与中等难度的. 愿我们变的越来越好 有啥不明白的评论区留 ...

  7. 【每日一算法】买卖股票的最佳时机

    微信改版,加星标不迷路! 每日一算法-买卖股票的最佳时机 作者:阿广 阅读目录 1 题目 2 解析 1 题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔 ...

  8. 【LeetCode】121. 买卖股票的最佳时机(C++)

    121. 买卖股票的最佳时机 1 题目描述 2 示例描述 2.1 示例1 2.2 示例2 3 解题提示 4 解题思路 5 暴力代码(超时) 6 解答代码 1 题目描述 给定一个数组 prices ,它 ...

  9. 【leetcode】714.买卖股票的最佳时机含手续费

    题目详见 714.买卖股票的最佳时机含手续费 题目难点 买入和卖出时机的位置怎么算 解决方案 买入点:最低价格就行 卖出点:例如1.6.8 fee=2,很明显在1买入,在8卖出,那怎么用算法来判断呢, ...

最新文章

  1. 目前有没有好用的RNASeq的pipeline呢?
  2. 什么是‘YTowOnt9‘?
  3. 【ARM】数据操作指令(下)
  4. RMAN-06026报错解决方法
  5. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用
  6. 安装php no permision,php安装过程中的No package ‘xxx’ found问题
  7. java excel 取值_java实现Excel 单元格取值工具类
  8. Android Q Labs| Android Q 分区存储
  9. 激活windows 7 RTM方法
  10. 如何使用SLM生成涡旋光束
  11. 51单片机原理以及接口技术(二)-单片机结构和原理
  12. 登录页面业务逻辑实现
  13. 计算机cpu后面字母代表什么意思,英特尔CPU型号中最后的字母什么意思?如有不懂欢迎驻足停留...
  14. IT接地系统工作原理
  15. uni-app 尺寸单位设置换算关系
  16. 【翻译】我们为什么要关注AIOps?
  17. [ STK ](十一)STK 中搭建铱星星座
  18. 机器学习深度学习 常用算法推导
  19. mysql本周 下周下月_sql 统计本周,本月,下周,下月sql语句
  20. Xposed系列--技巧篇

热门文章

  1. 学python用什么系统好-学Python用什么系统?
  2. python 加注拼音-Python 获取中文字拼音首个字母的方法
  3. python的none是什么-python中stream=None什么意思?
  4. python现在好找工作吗-Python就业前景如何?培训后好找工作吗?
  5. python大神-Python代码怎么写,听听顶尖Python大神的建议
  6. mapreduce编程实例python-Python编写MapReduce作业的简单示例
  7. python3-Python3 zip() 函数
  8. php和python对比-通过PHP与Python代码对比浅析语法差异
  9. python和c++哪个好用-C#、C++、Java、Python 选择哪个好?
  10. python上海培训哪里比较好-上海十大python培训机构排名