'''
Description: 714.买卖股票的最佳时机含手续费
Autor: 365JHWZGo
Date: 2021-11-11 10:03:16
LastEditors: 365JHWZGo
LastEditTime: 2021-11-11 15:26:14
'''
class Solution(object):def maxProfit(self, prices, fee):""":type prices: List[int]:type fee: int:rtype: int"""minPrice = prices[0]profit = 0for i in range(1, len(prices)):if prices[i] < minPrice:minPrice = prices[i]elif minPrice <= prices[i] and minPrice+fee >= prices[i]:continueelse:profit += prices[i]-minPrice-feeminPrice = prices[i]-feereturn profit

这道题总体来说是很巧妙的,它现在不光是看收益是否为正,还要看所获得的收益是否还能支付的起手续费,而我们要做的是找到最低买入点,在合适点卖出,并且所获得的收益要高于手续费。

if prices[i] < minPrice:minPrice = prices[i]
在依次遍历循环时,如果找到比当前最低价格的买入点则更新最低买入点。

elif minPrice <= prices[i] and minPrice+fee >= prices[i]:continue
如果找到比当前最低值高的股票价格,则需要判断其所获得的利润是否可以支付的起手续费,如果不可以,则循环继续。

else:
profit += prices[i]-minPrice-fee
minPrice = prices[i]-fee

否则,说明股票可以有利润,更新profit
更新新的最低买入点,即从当前开始profit为0时,抛去手续费的最低价。

比如在第一个红圈处满足条件,当遇到第二个红圈时,需要尾-首,如果要分段计算,则需要将分段计算多出的手续费加回来。
所以为什么要minPrice = prices[i]-fee。

714.买卖股票含手续费相关推荐

  1. 714. 买卖股票的最佳时机含手续费(CPP)

    714. 买卖股票的最佳时机含手续费 给定一个整数数组 pricespricesprices,其中第 iii 个元素代表了第 iii 天的股票价格 :非负整数 feefeefee 代表了交易股票的手续 ...

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

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

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

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

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

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

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

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

  6. leetcode 714 买卖股票的最佳时机含手续费-动态规划(中等)

    714 买卖股票的最佳时机含手续费-动态规划(中等) 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :非负整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交 ...

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

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

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

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

  9. 力扣算法JS LC [714. 买卖股票的最佳时机含手续费] LC [968. 监控二叉树]

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

  10. 【必备算法】动态规划:LeetCode题(九)309. 最佳买卖股票时机含冷冻期,714. 买卖股票的最佳含手续费

    买卖股票系列: [必备算法]动态规划:一个思路解决六道股票问题 [必备算法]动态规划:LeetCode题(七)121. 买卖股票的最佳时机,122. 买卖股票的最佳时机 II [必备算法]动态规划:L ...

最新文章

  1. leetcode算法题--多边形三角剖分的最低得分★
  2. [bzoj2815] [洛谷P2597] [ZJOI2012] 灾难
  3. 018_switch语句
  4. 【Paper】41_[24]novel type of phase transition in a system of self-driven particles
  5. 966计算机综合,中职计算机基础 (966)(10页)-原创力文档
  6. Tensorflow_yolov3 Intel Realsense D435奇怪的现象,多摄像头连接时一旦能检测到深度马上就会卡(卡住)
  7. matlab 次坐标轴 标注,matlab标注坐标轴
  8. 访问量大如何增加服务器,服务器流量过大原因及解决方法
  9. 如何在Ubuntu下安装 monodevelop
  10. matlab中的qr函数
  11. long mode 分页_在Spring Boot中使用Spring-data-jpa实现分页查询(转)
  12. USACO-Section1.6 Number Triangles (动态规划)
  13. 为什么eolinker发送老是等待_eolinker环境管理之开发、测试和生产环境
  14. java学习(分布式架构)
  15. Marlin固件配置教程详解
  16. MDX示例:求解中位数、四分位数(median、quartile)
  17. 饥饿游戏3:嘲笑鸟(上)[The Hunger Games:Mockingjay - Part 1]
  18. 日语バズる中文怎么翻译?
  19. 钛媒体乌镇咖荟 | 数字化改变以流量为核心的平台生态,系统性思维的价值开始显现...
  20. 如何将Vufroria 、ARCore和ARkit结合使用

热门文章

  1. [CF106C]Buns -多重背包
  2. 中国大学moocpython笔记_中国大学MOOC —— 学习笔记(二)
  3. python分割文件_python简单分割文件的方法
  4. 定时删除虚拟服务器快照,自动执行VMware快照并删除超过5天的快照
  5. ibm tivoli_在Tivoli Access Manager环境中管理TDS 6.0代理服务器并进行故障排除
  6. python颜色的数字代码_python – 更改QLCD数字的数字颜色
  7. 黑苹果系统的优化与问题解决(一)
  8. 数据库服务器的安装与配置
  9. GameCenter接入
  10. 8086CPU I/O系统组织 8253芯片 8255A芯片