【力扣】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 <= prices.length <= 5 * 104
1 <= prices[i] < 5 * 104
0 <= fee < 5 * 104
答案:
class Solution {public int maxProfit(int[] prices, int fee) {//1是持有,0是未持有//dp[i][0]表示第i天时不持有股票, dp[i][1]表示第i天时持有股票//定义卖出股票时减去交易费if(prices.length == 0 || prices.length == 1) return 0;int n = prices.length;int[][] dp = new int[n][2];dp[0][0] = 0;dp[0][1] = -prices[0];for(int i = 1; i < n; i++){dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] + prices[i] - fee);dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] - prices[i]);}return dp[n - 1][0];}
}
【力扣】714. 买卖股票的最好时机含手续费相关推荐
- 【LeetCode刷题笔记-39 714.买卖股票的最佳时机(含手续费)】
题目: 今天是正式开始独立思考动态规划解题的日子. 这题拿到手的时候,我第一时间其实想到的就是动态规划,去找他每天最大收益状态,但是想来想去发现行不通,于是就作弊看答案了,发现是使用双状态的方法考虑的 ...
- 力扣 714. 买卖股票的最佳时机含手续费
题目 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :非负整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付手续费.如果你已经购买 ...
- 【数据结构与算法】之深入解析“买卖股票的最好时机含手续费”的求解思路与算法示例
一.题目要求 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格,整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付手续费,如果你已 ...
- 买卖股票的zuija时机含手续费(Java)
给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付手续费.如果你已经购买了一个股票 ...
- 力扣:121. 买卖股票的最佳时机 题解
力扣:121. 买卖股票的最佳时机 1 题目描述 2 题解 1 题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格. 你只能选择 某一天 ...
- 力扣123.买卖股票的最佳时机Ⅲ买卖股票的最佳时机Ⅳ
文章目录 一.力扣123.买卖股票的最佳时机Ⅲ 题目描述 方法一:无脑拆分为五种状态,然后用dp 二.力扣123.买卖股票的最佳时机Ⅳ 题目描述 方法一:划分2k种状态,用dp 一.力扣123.买卖股 ...
- 力扣 -- 123. 买卖股票的最佳时机 III
题目链接:123. 买卖股票的最佳时机 III - 力扣(LeetCode) 下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴. 参考代码: class So ...
- 【力扣】买卖股票的最佳时机 II
目录 1.问题 2.示例 3.提示 4.思路 6.代码 1.问题 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格. 在每一天,你可以决定是否购买和/或出售股票 ...
- 力扣123. 买卖股票的最佳时机 III
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 两笔 交易. 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的 ...
- 力扣--122. 买卖股票的最佳时机 II
题目 python代码 def maxProfit(prices):maxPro = 0i = 1while i < len(prices):profit = prices[i] - price ...
最新文章
- 我们单位里新来的应届毕业生(转贴)
- 基于VTK的MFC应用程序开发(3)
- linux java usb 串口_2019-11-02 Linux下USB-串口的使用
- datax 定时执行多个job_DataX在有赞大数据平台的实践
- wdatepicker ajax传参,DatePicker在Ajax加载的页面中不起作用
- 小米财报:Q3营收537亿创新高 经调净利35亿超市场预期
- HDU2049 不容易系列之(4)——考新郎【递推】
- 简谈Java的join()方法(转)
- 前端安全——XSS攻击与防御原理详解
- MLK-12Q-DC48多路直流电能表说明书
- 数商云制药医药供应链erp管理系统解决方案
- ex10_11修改Loan类
- 给图片加边框源代码c语言,给图片加框的代码及效果
- android x86 mip,mip-appdl
- Python学习手册之Python异常和文件
- Clear Type之父谈阅读革命(转载)
- JavaScript对JSON数组操作。数组添加(push)以及移除(splitce)
- 信号的概念,认识,处理动作
- [svn]svn conflict 冲突解决
- URL解码:比照法的问题
热门文章
- JDBC连接报错:Client does not support authentication protocol requested by server; consider upgrading MyS
- ecu的c语言编程,ecu中的程序是如何编写的
- 设计模式-手机生产-抽象工厂模式
- 1156 Sexy Primes (20 分)(质数 模拟
- PS制作水印的简单教程
- win10打开游戏提示你的图形硬件不支持怎么办
- Python计算机视觉-仿射扭曲简单实例
- 计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上
- 罗技m330更换接收器(通过重新对码的方式)
- JavaScript入门培训材料(Copy至此以作备份)