LeetCode刷题之路:714. 买卖股票的最佳时机含手续费
给定一个整数数组 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
示例 2:
输入:prices = [1,3,7,5,10,3], fee = 3
输出:6
#最直观的思路
考虑三种情况:
1、当前价格小于原先购买的价格,说明遇到了更低的买入价,
则先将当前的可能获得收益结算(因为有手续费,所以这个收益有可能是负的),随后购买和卖出价格更新为当前的价格
2、当前价格大于当前的出售价格
则直接将出售价格更新为当前的价格
3、当前的价格小于当前的(出售价格-手续费)
则计算当前的收益,随后购买和卖出价格更新为当前的价格
class Solution:def maxProfit(self, prices: List[int], fee: int) -> int:if len(prices) == 1:return 0left = right = 0res = 0min_p = prices[left]for i in range(1, len(prices)):if prices[i] <= prices[left]: #当前价格小于原价res += max(0, prices[right] - prices[left] - fee)left = right = ielif prices[i] >= prices[right]: #当前价格大于当前的售价right = ielif prices[i] <= prices[right] - fee: #当前价格小于当前的售价减去手续费res += (prices[right] - prices[left] - fee)left = right = ires += max(0, prices[right] - prices[left] - fee)return res
LeetCode刷题之路:714. 买卖股票的最佳时机含手续费相关推荐
- 【Leetcode刷题Python】714. 买卖股票的最佳时机含手续费
1 题目 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付手续费.如果你已经 ...
- 【LeetCode刷题笔记-39 714.买卖股票的最佳时机(含手续费)】
题目: 今天是正式开始独立思考动态规划解题的日子. 这题拿到手的时候,我第一时间其实想到的就是动态规划,去找他每天最大收益状态,但是想来想去发现行不通,于是就作弊看答案了,发现是使用双状态的方法考虑的 ...
- Leetcode刷题笔记 714. 买卖股票的最佳时机含手续费
714. 买卖股票的最佳时机含手续费 时间:2020年12月17日 知识点:动态规划 题目链接:https://leetcode-cn.com/problems/best-time-to-buy-an ...
- 【LeetCode每日一题】——714.买卖股票的最佳时机含手续费
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[解题思路] 七[题目提示] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 贪心算法 二[ ...
- 力扣刷题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. 买卖股票的最佳时机含手续费
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& ...
最新文章
- 基于机器学习梯度下降优化算法来寻找最佳的线性回归模型
- Mysql 知识点总结(持续更新)
- linux apache无法启动,linux mysq 无法启动 apache 无法启动
- 开源路由器爱好者迎来利好 Linksys不变
- python中回文设计_Python中的回文递归
- php 大图找小图,点击小图弹出大图,点击网页任何部分隐藏大图
- Struts2学习总结一
- 语法上的小trick
- C语言项目:扫雷大战精简版
- 嵌入式实训-day1
- [剑指offer]面试题第[66]题[构建乘积数组][Leetcode][JAVA][第238题][除自身以外数组的乘积][数组]
- 计算机展望未来网络形态,在学习中展望未来
- 80-10-020-原理-Java NIO-HeapByteBuffer
- 库克谈“唱衰苹果”:一派胡言!
- 5个步骤搞定protoc环境安装
- android微信支付指纹支付密码错误,安卓微信支付怎么设置指纹锁
- plsql 快捷键 设置 字母大小写
- 合肥辰工科技有限公司简介及公司产品介绍
- PotPlayer播放器及安装说明
- SMTP;ESMTP
热门文章
- iptables默认规则
- 【lc刷题】66 加一_Day16(57/300)
- 怎样理解墨菲拓扑定律?
- 什么是docker以及一些有趣的docker项目
- js获取当前周、上一周、下一周日期
- java微信小程序的加密算法_java微信小程序步数encryptedData和开放数据解密的实现...
- python中英文混合字符串宽度对齐打印
- python编程实战 运用设计模式_《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 1.3 工厂方法模式-阿里云开发者社区...
- 创建一个音乐平台(一)使用IDEA创建Maven项目并将项目转换为web项目
- 开放大学计算机应用基础第4次,《国家开放大学学习指南》计算机应用基础网上作业答案完整版...