刷题第四十三天 309.买卖股票最佳时机+冷冻 714. 买卖股票最佳时机+手续费

本文主要是介绍刷题第四十三天 309.买卖股票最佳时机+冷冻 714. 买卖股票最佳时机+手续费,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

class Solution:def maxProfit(self, prices: List[int]) -> int:#dp[i][0] 第i天持有股票 手上的最大现金#dp[i][1] 第i天不持有股票,手上的最大现金#dp[i][0] = max(dp[i - 1][0], dp[i - 2][1] - prices[i]) 因为有一天冻结,并且无限次交易,所以第i天持有的情况之一 就是第i-2天的时候卖掉的时候手上的现金 减掉今天的价格#dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i]) 不持有的情况不影响,因为出售没有冷冻限制if len(prices) == 1:return 0if len(prices) == 2:return (prices[1] - prices[0]) if prices[1] - prices[0] > 0 else 0dp = [[0] * 2 for _ in range(len(prices))]dp[0][0] = -prices[0]for i in range(1, len(prices)):if i == 1:dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i])dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i])    dp[i][0] = max(dp[i - 1][0], dp[i - 2][1] - prices[i])dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i])            return dp[-1][1]

#dp[i][0] 第i天持有股票 手上的最大现金

#dp[i][1] 第i天不持有股票,手上的最大现金

#dp[i][0] = max(dp[i - 1][0], dp[i - 2][1] - prices[i]) 因为有一天冻结,并且无限次交易,所以第i天持有的情况之一 就是第i-2天的时候卖掉的时候手上的现金 减掉今天的价格

#dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i]) 不持有的情况不影响,因为出售没有冷冻限制

class Solution:def maxProfit(self, prices: List[int], fee: int) -> int:#dp[i][0] 第i天持有股票 手上的最大现金#dp[i][1] 第i天不持有股票,手上的最大现金#dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i] - fee)  #因为每笔交易,所以统一在买入的时候收,涉及到买卖就再减掉fee#dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i])if len(prices) == 1:return 0if len(prices) == 2:return (prices[1] - prices[0] - fee) if prices[1] - prices[0] - fee > 0 else 0dp = [[0] * 2 for _ in range(len(prices))]dp[0][0] = -prices[0] - feefor i in range(1, len(prices)):dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i] - fee)dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i])            return dp[-1][1]

#dp[i][0] 第i天持有股票 手上的最大现金
#dp[i][1] 第i天不持有股票,手上的最大现金
#dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i] - fee)  #因为每笔交易,所以统一在买入的时候收,涉及到买卖就再减掉fee
#dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i])

总结篇代码随想录

这篇关于刷题第四十三天 309.买卖股票最佳时机+冷冻 714. 买卖股票最佳时机+手续费的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/492567

相关文章

【每日刷题】Day113

【每日刷题】Day113 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 91. 解码方法 - 力扣(LeetCode) 2. LCR 098. 不同路径 - 力扣(LeetCode) 3. 63. 不同路径 II - 力扣(LeetCode) 1. 91. 解码方法 - 力扣(LeetCode) //思路:动态规划。 cl

股票数据接口-陈科肇

陈科肇 新浪财经 sz-深圳sh-上海历史分价表:http://market.finance.sina.com.cn/pricehis.php?symbol=sz000506&startdate=2016-12-27&enddate=2016-12-27历史成交明细(当日成交明细):http://vip.stock.finance.sina.com.cn/quotes_service/v

hot100刷题第1-9题,三个专题哈希,双指针,滑动窗口

求满足条件的子数组,一般是前缀和、滑动窗口,经常结合哈希表; 区间操作元素,一般是前缀和、差分数组 数组有序,更大概率会用到二分搜索 目前已经掌握一些基本套路,重零刷起leetcode hot 100, 套路题按套路来,非套路题适当参考gpt解法。 一、梦开始的地方, 两数之和 class Solution:#注意要返回的是数组下标def twoSum(self, nums: Lis

代码随想录刷题day25丨491.递增子序列 ,46.全排列 ,47.全排列 II

代码随想录刷题day25丨491.递增子序列 ,46.全排列 ,47.全排列 II 1.题目 1.1递增子序列 题目链接:491. 非递减子序列 - 力扣(LeetCode) 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0491.%E9%80%92%E

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II 1.题目 1.1复原IP地址 题目链接:93. 复原 IP 地址 - 力扣(LeetCode) 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0093.%E5%A4%8

【笔记】数据结构刷题09

快速排序 215. 数组中的第K个最大元素 class Solution {public:int findKthLargest(vector<int>& nums, int k) {return divide(nums,0,nums.size()-1,nums.size()-k);}int divide(vector<int>& nums,int left,int right,int k)

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

C语言:刷题日志(1)

一.阶乘计算升级版 本题要求实现一个打印非负整数阶乘的函数。 其中n是用户传入的参数,其值不超过1000。如果n是非负整数,则该函数必须在一行中打印出n!的值,否则打印“Invalid input”。 首先,知道阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。那么我们先来个简单的阶乘计算吧。 #include<stdio.h>int Fact(int n){if (n <=

【每日刷题】Day112

【每日刷题】Day112 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1137. 第 N 个泰波那契数 - 力扣(LeetCode) 2. 面试题 08.01. 三步问题 - 力扣(LeetCode) 3. LCR 088. 使用最小花费爬楼梯 - 力扣(LeetCode) 1. 1137. 第 N 个泰波那契数 - 力扣(LeetCo

佰朔资本:股票为什么会跌?跌了还会涨回来吗?

或许导致股票下跌的原因: 1、遭到商场环境要素影响,商场环境要素是指影响股票商场整体走势的要素,比如宏观经济、政策法规、商场资金、商场心境等。假如商场环境出现改变,比如经济添加放缓、政策收紧、资金紧张、商场不确定性添加等,那么投资者对股票的需求和持股决心就会下降,然后导致股价下跌。 2、遭到个股基本面要素影响,基本面要素是指影响股票内在价值的要素,比如企业的财务情况、成果表现、发展战略、管理水