leetcode算法题-- 买卖股票的最佳时机
原题链接: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算法题-- 买卖股票的最佳时机相关推荐
- leetcode算法题--买卖股票的最佳时机 II
原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 这类股票题目请见leetcode算法题–最佳买卖股票 ...
- leetcode算法题--买卖股票的最佳时机含手续费
原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 这类股票题目请见 ...
- 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java
<LeetCode力扣练习>第121题 买卖股票的最佳时机 Java 一.资源 题目: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价 ...
- _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II 、55.跳跃游戏、45.跳跃游戏II
_28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II .55.跳跃游戏.45.跳跃游戏II 题目列表 122.买卖股票的最佳时机II 55.跳跃游戏 45 ...
- 代码随想录算法训练营第三十二天_第八章_贪心算法 | 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II
LeetCode 122.买卖股票的最佳时机II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格.设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票 ...
- 力扣121题买卖股票的最佳时机 简单容易明白
博主最近在力扣上做算法题,一天一道,可以跟着我来练习,有啥不会的可以留言,或者不理解力扣上面哪道可以进行留言.有啥不会的题也可以留言,仅限于简单与中等难度的. 愿我们变的越来越好 有啥不明白的评论区留 ...
- 【每日一算法】买卖股票的最佳时机
微信改版,加星标不迷路! 每日一算法-买卖股票的最佳时机 作者:阿广 阅读目录 1 题目 2 解析 1 题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔 ...
- 【LeetCode】121. 买卖股票的最佳时机(C++)
121. 买卖股票的最佳时机 1 题目描述 2 示例描述 2.1 示例1 2.2 示例2 3 解题提示 4 解题思路 5 暴力代码(超时) 6 解答代码 1 题目描述 给定一个数组 prices ,它 ...
- 【leetcode】714.买卖股票的最佳时机含手续费
题目详见 714.买卖股票的最佳时机含手续费 题目难点 买入和卖出时机的位置怎么算 解决方案 买入点:最低价格就行 卖出点:例如1.6.8 fee=2,很明显在1买入,在8卖出,那怎么用算法来判断呢, ...
最新文章
- 目前有没有好用的RNASeq的pipeline呢?
- 什么是‘YTowOnt9‘?
- 【ARM】数据操作指令(下)
- RMAN-06026报错解决方法
- 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用
- 安装php no permision,php安装过程中的No package ‘xxx’ found问题
- java excel 取值_java实现Excel 单元格取值工具类
- Android Q Labs| Android Q 分区存储
- 激活windows 7 RTM方法
- 如何使用SLM生成涡旋光束
- 51单片机原理以及接口技术(二)-单片机结构和原理
- 登录页面业务逻辑实现
- 计算机cpu后面字母代表什么意思,英特尔CPU型号中最后的字母什么意思?如有不懂欢迎驻足停留...
- IT接地系统工作原理
- uni-app 尺寸单位设置换算关系
- 【翻译】我们为什么要关注AIOps?
- [ STK ](十一)STK 中搭建铱星星座
- 机器学习深度学习 常用算法推导
- mysql本周 下周下月_sql 统计本周,本月,下周,下月sql语句
- Xposed系列--技巧篇
热门文章
- 学python用什么系统好-学Python用什么系统?
- python 加注拼音-Python 获取中文字拼音首个字母的方法
- python的none是什么-python中stream=None什么意思?
- python现在好找工作吗-Python就业前景如何?培训后好找工作吗?
- python大神-Python代码怎么写,听听顶尖Python大神的建议
- mapreduce编程实例python-Python编写MapReduce作业的简单示例
- python3-Python3 zip() 函数
- php和python对比-通过PHP与Python代码对比浅析语法差异
- python和c++哪个好用-C#、C++、Java、Python 选择哪个好?
- python上海培训哪里比较好-上海十大python培训机构排名