作者:xun-ge-v
链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/solution/-by-xun-ge-v-v2ac/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

题目

示例

思路

解题思路
贪心策略

就是最低值买,最高值(如果算上手续费还盈利)就卖。

此时无非就是要找到两个点,买入日期,和卖出日期。

  • 买入日期:其实很好想,遇到更低点就记录一下。
  • 卖出日期:这个就不好算了,但也没有必要算出准确的卖出日期,只要当前价格大于(最低价格+手续费),就可以收获利润,至于准确的卖出日期,就是连续收获利润区间里的最后一天(并不需要计算是具体哪一天)。

所以我们在做收获利润操作的时候其实有三种情况:

  • 情况一:收获利润的这一天并不是收获利润区间里的最后一天(不是真正的卖出,相当于持有股票),所以后面要继续收获利润。
  • 情况二:前一天是收获利润区间里的最后一天(相当于真正的卖出了),今天要重新记录最小价格了。
  • 情况三:不作操作,保持原有状态(买入,卖出,不买不卖)

代码

int maxProfit(int* prices, int pricesSize, int fee){int result = 0;int minPrice = prices[0]; // 记录最低价格for (int i = 1; i < pricesSize; i++) {// 情况二:相当于买入if (prices[i] < minPrice) minPrice = prices[i];// 情况三:保持原有状态(因为此时买则不便宜,卖则亏本)if (prices[i] >= minPrice && prices[i] <= minPrice + fee) {continue;}// 计算利润,可能有多次计算利润,最后一次计算利润才是真正意义的卖出if (prices[i] > minPrice + fee) {result += prices[i] - minPrice - fee;minPrice = prices[i] - fee; // 情况一,这一步很关键}}return result;
}作者:xun-ge-v
链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/solution/-by-xun-ge-v-v2ac/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

LeetCode·714.买卖股票的最佳时机含手续费·贪心相关推荐

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

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

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

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

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

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

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

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

  5. 110. Leetcode 714. 买卖股票的最佳时机含手续费 (动态规划-股票交易)

    步骤一.确定状态: 确定dp数组及下标含义 dp[i]是一个长度为len(prices)的一维数组,表示的是在第i天持有股票 步骤二.推断状态方程: 第i天不持有股票,即dp[i][0], 那么两个状 ...

  6. leetcode 714. 买卖股票的最佳时机含手续费(dp)

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

  7. leetcode 714. 买卖股票的最佳时机含手续费(java)

    贪心!!! class Solution {public int maxProfit(int[] prices, int fee) {int n = prices.length;int buy = p ...

  8. 714. 买卖股票的最佳时机含手续费+贪心

    https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 题目要求 给定一个整数数组 pri ...

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

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

最新文章

  1. IOS 6.0+ Autolayout — UITableViewCell 高度调整
  2. 蔚来一面:用Object做hashMap的Key时需要做什么?
  3. 也许是史上最不良心的低阶计算几何讲解和习题集??
  4. 轻量级UIImageView分类缓存 库 AsyncImageView 使用
  5. 关于磁盘和内存的常识以及磁盘I/O进化史
  6. 014箱子开合并移动
  7. 在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用
  8. 清华大学-美团数字生活联合研究院成立
  9. python Exception(异常处理)
  10. python生成安装程序_python生成安装文件 msi
  11. SQL Server-【知识与实战II】条件查询、比较运算符查询、模糊查询、枚举查询、范围查询、空值查询、多重条件查询
  12. jsbridge实现及原理_Hybrid APP基础篇(四)-JSBridge的原理
  13. 驱动精灵在服务器的系统安装,驱动精灵怎么安装打印机驱动?打印机驱动安装的方法...
  14. 工业级三维扫描仪关于扫描前喷粉技巧,你了解多少?
  15. LeetCode 01:有人相爱,有人夜里开车看海,有人LeetCode第一题都做不出来
  16. 【华为OD机试真题 JS】叠积木
  17. 做空恐慌指数Python回测
  18. Turtlebot3-burger入门教程#foxy版#-树莓派4安装
  19. linux物理接口数据结构,Linux Regulator Framework(1)_概述
  20. Linux0号进程,1号进程,2号进程

热门文章

  1. postMessage的使用,跨window交互
  2. 黄金价格走势之二:舍子线的运用
  3. Windows10升级Windows11之后Edge浏览器被强制修改成360的解决办法
  4. Spring Statemachine 简介
  5. Proe Creo 二次开发之修改模型中的草绘模型--特征元素树
  6. Hexo博客之主题美化
  7. 小图放大神器 MAX-Image-Resolution-Enhancer
  8. 2021年中国职工医疗互助发展分析:在政策的引导下,职工医疗互助将迎来高质量发展阶段[图]
  9. 查看串口波特率linux,linux查看波特率
  10. 复杂系统构建之——从人的极因说到《细胞叛逆者》