给定一个整数数组 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. 买卖股票的最佳时机含手续费相关推荐

  1. 【Leetcode刷题Python】714. 买卖股票的最佳时机含手续费

    1 题目 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付手续费.如果你已经 ...

  2. 【LeetCode刷题笔记-39 714.买卖股票的最佳时机(含手续费)】

    题目: 今天是正式开始独立思考动态规划解题的日子. 这题拿到手的时候,我第一时间其实想到的就是动态规划,去找他每天最大收益状态,但是想来想去发现行不通,于是就作弊看答案了,发现是使用双状态的方法考虑的 ...

  3. Leetcode刷题笔记 714. 买卖股票的最佳时机含手续费

    714. 买卖股票的最佳时机含手续费 时间:2020年12月17日 知识点:动态规划 题目链接:https://leetcode-cn.com/problems/best-time-to-buy-an ...

  4. 【LeetCode每日一题】——714.买卖股票的最佳时机含手续费

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[解题思路] 七[题目提示] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 贪心算法 二[ ...

  5. 力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树

    文章目录 738. 单调递增的数字 思路 难点:遍历顺序 难点:设置flag 714. 买卖股票的最佳时机含手续费 贪心思路 难点 968. 监控二叉树 思路 难点:如何隔两个节点放一个摄像头 738 ...

  6. 力扣刷题day44|309最佳买卖股票时机含冷冻期、714买卖股票的最佳时机含手续费

    文章目录 309. 最佳买卖股票时机含冷冻期 思路 动态规划五部曲 714. 买卖股票的最佳时机含手续费 贪心思路 难点 动态规划思路 动态规划五部曲 309. 最佳买卖股票时机含冷冻期 力扣题目链接 ...

  7. 【算法】贪心算法:LeetCode 714 买卖股票的最佳时机含手续费 、LeetCode 968 监控二叉树

    LeetCode 714 买卖股票的最佳时机含手续费 (中等) 题目 描述 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你 ...

  8. 模拟卷Leetcode【普通】714. 买卖股票的最佳时机含手续费

    714. 买卖股票的最佳时机含手续费 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都 ...

  9. 【贪心算法】Leetcode 714. 买卖股票的最佳时机含手续费

    [贪心算法]Leetcode 714. 买卖股票的最佳时机含手续费 题目 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. ...

  10. LeetCode 714 买卖股票的最佳时机含手续费

    714. 买卖股票的最佳时机含手续费 题目 思路 过一遍,记录第i天是否买入和卖出的最值. 代码 class Solution {public:int maxProfit(vector<int& ...

最新文章

  1. 基于机器学习梯度下降优化算法来寻找最佳的线性回归模型
  2. Mysql 知识点总结(持续更新)
  3. linux apache无法启动,linux mysq 无法启动 apache 无法启动
  4. 开源路由器爱好者迎来利好 Linksys不变
  5. python中回文设计_Python中的回文递归
  6. php 大图找小图,点击小图弹出大图,点击网页任何部分隐藏大图
  7. Struts2学习总结一
  8. 语法上的小trick
  9. C语言项目:扫雷大战精简版
  10. 嵌入式实训-day1
  11. [剑指offer]面试题第[66]题[构建乘积数组][Leetcode][JAVA][第238题][除自身以外数组的乘积][数组]
  12. 计算机展望未来网络形态,在学习中展望未来
  13. 80-10-020-原理-Java NIO-HeapByteBuffer
  14. 库克谈“唱衰苹果”:一派胡言!
  15. 5个步骤搞定protoc环境安装
  16. android微信支付指纹支付密码错误,安卓微信支付怎么设置指纹锁
  17. plsql 快捷键 设置 字母大小写
  18. 合肥辰工科技有限公司简介及公司产品介绍
  19. PotPlayer播放器及安装说明
  20. SMTP;ESMTP

热门文章

  1. iptables默认规则
  2. 【lc刷题】66 加一_Day16(57/300)
  3. 怎样理解墨菲拓扑定律?
  4. 什么是docker以及一些有趣的docker项目
  5. js获取当前周、上一周、下一周日期
  6. java微信小程序的加密算法_java微信小程序步数encryptedData和开放数据解密的实现...
  7. python中英文混合字符串宽度对齐打印
  8. python编程实战 运用设计模式_《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 1.3 工厂方法模式-阿里云开发者社区...
  9. 创建一个音乐平台(一)使用IDEA创建Maven项目并将项目转换为web项目
  10. 开放大学计算机应用基础第4次,《国家开放大学学习指南》计算机应用基础网上作业答案完整版...