Leetcode刷题笔记 714. 买卖股票的最佳时机含手续费
714. 买卖股票的最佳时机含手续费
时间:2020年12月17日
知识点:动态规划
题目链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/
题目
给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。
你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。
返回获得利润的最大值。
注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。
示例 1:
输入: prices = [1, 3, 2, 8, 4, 9], fee = 2
输出: 8
解释: 能够达到的最大利润:
在此处买入 prices[0] = 1
在此处卖出 prices[3] = 8
在此处买入 prices[4] = 4
在此处卖出 prices[5] = 9
总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8.
注意:
- 0 < prices.length <= 50000.
- 0 < prices[i] < 50000.
- 0 <= fee < 50000.
解法:
- 一看就是动态规划 一般来说动态规划的第一个是变化的天数 第二个是状态
- 这里有两个状态: 手上有股票 手上没股票 时能获得的最大利润
- 可以得出转移方程
- 当天手上没股票 = max(昨天手上没股票,昨天手上有股票+今天股票价格-手续费)
- 当天手上有股票 = max(昨天手上有股票,昨天手上没股票-今天股票价格)
- 返回最后一天手上没股票的
- 状态压缩
代码
#include <stdio.h>
#include <vector>
#include <iostream>
using namespace std;
class Solution {public:int maxProfit(vector<int>& prices, int fee) {int n = prices.size();int have = -prices[0];int no = 0;for(int i = 1; i < n; i++){int pre_have = have;have = max(have,no - prices[i]);no = max(no,pre_have + prices[i]-fee);}return no;}
};
int main()
{vector<int> prices{1,3,2,8,4,9};int fee = 2;Solution s;cout<<s.maxProfit(prices, fee);return 0;
}
今天也是爱zz的一天哦!
Leetcode刷题笔记 714. 买卖股票的最佳时机含手续费相关推荐
- [LeetCode刷题笔记]714 - 买卖股票的最佳时机含手续费(C++/Python3/Java/动态规划/贪心)
一.题目描述 给定一个整数数组 prices 和 整数 fee ,其中 prices[i] 表示第 i 天的股票价格,fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付 ...
- 【LeetCode每日一题】——714.买卖股票的最佳时机含手续费
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[解题思路] 七[题目提示] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 贪心算法 二[ ...
- 模拟卷Leetcode【普通】714. 买卖股票的最佳时机含手续费
714. 买卖股票的最佳时机含手续费 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都 ...
- 《LeetCode刷题》—121. 买卖股票的最佳时机
<LeetCode刷题>-121. 买卖股票的最佳时机 一.题目内容 原题连接:https://leetcode.cn/problems/best-time-to-buy-and-sell ...
- 力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树
文章目录 738. 单调递增的数字 思路 难点:遍历顺序 难点:设置flag 714. 买卖股票的最佳时机含手续费 贪心思路 难点 968. 监控二叉树 思路 难点:如何隔两个节点放一个摄像头 738 ...
- 力扣刷题day44|309最佳买卖股票时机含冷冻期、714买卖股票的最佳时机含手续费
文章目录 309. 最佳买卖股票时机含冷冻期 思路 动态规划五部曲 714. 买卖股票的最佳时机含手续费 贪心思路 难点 动态规划思路 动态规划五部曲 309. 最佳买卖股票时机含冷冻期 力扣题目链接 ...
- 【算法】贪心算法:LeetCode 714 买卖股票的最佳时机含手续费 、LeetCode 968 监控二叉树
LeetCode 714 买卖股票的最佳时机含手续费 (中等) 题目 描述 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你 ...
- 【贪心算法】Leetcode 714. 买卖股票的最佳时机含手续费
[贪心算法]Leetcode 714. 买卖股票的最佳时机含手续费 题目 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. ...
- LeetCode 714 买卖股票的最佳时机含手续费
714. 买卖股票的最佳时机含手续费 题目 思路 过一遍,记录第i天是否买入和卖出的最值. 代码 class Solution {public:int maxProfit(vector<int& ...
最新文章
- server-send event object
- linux修改mysql默认大小写配置,linux下设置mysql不区分大小写
- c语言复杂的程序代码,C语言中复杂结构的序列化
- Python-类基础
- linux怎么64位,在linux下如何查看CPU是否支持64位
- 将 EndNote 文献信息导出成 BibTeX 格式(可根据label排序)以及出现三个问号
- (八)构建一个Docker容器来训练Deep Fake Autoencoders
- 蓝桥杯 算法训练 矩阵乘法
- matlab调和均值滤波_中值和均值滤波---matlab实现
- linux漏洞抓鸡,风靡全球的Ms08-067漏洞抓鸡大曝光
- 苹果6s强制删除id锁_付费苹果解锁软件 屏幕解锁及AppleID解锁
- Vue关键词搜索高亮
- python xls文件转为csv
- 英特尔处理器排名_鲁大师公布三季度PC处理器、内存排行榜:AMD成最大赢家
- 用于自动化的 10 个杀手级 Python 脚本
- 大学物理实验-仿真实验-示波器的原理
- mac 版本navicate 如何安装破解版
- TensorFlow TFRecords简介
- QQ群加入代码在线获取
- 三年级计算机教案 渔舟唱晚,人音版五级上册音乐 渔舟唱晚 教案 .docx
热门文章
- 【爬虫】应用Python爬虫爬取豆瓣租房上的帖子信息
- 服务器怎么安装exis系统,exis 服务器安装
- 如何实现同一个ip下同一个80端口部署多个网站?
- Mac OS X pl2303 的驱动下载
- Oracle数据库学习--2个不错的网站
- 精伦iDR210读卡器驱动安装教程
- JS获取指定日期前后N天的日期、前N个月日期、后N个月日期
- stm32在官网下载标准库
- 基于人体感应模块的驱鸟器设计
- udc-core: couldn‘t find an available UDC - added [g_ether] to list of pending drivers