代码随想录算法训练营Day 50 | 动态规划part12 | 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

代码随想录算法训练营Day 50 | 动态规划part12 | 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费


文章目录

  • 代码随想录算法训练营Day 50 | 动态规划part12 | 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费
  • 309.最佳买卖股票时机含冷冻期
    • 一、两种状态
    • 二、3种状态
  • 714.买卖股票的最佳时机含手续费
    • 一、与买卖股票的最佳时机II相同思路


309.最佳买卖股票时机含冷冻期

题目链接

一、两种状态

class Solution(object):def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""# dp[i][0], 第i天【持有股票】所得的最大利润# dp[i][1], 第i天【不持有股票】所得的最大利润if len(prices)<2:return 0dp = [[0]*2 for _ in range(len(prices))]dp[0][0] = -prices[0] # 第1天买入dp[1][0] = max(-prices[0],-prices[1]) # 第2天买入或持有dp[0][1] = 0 # 第1天不持有dp[1][1] = max(0,prices[1]-prices[0]) # 第二天不持有for i in range(2,len(prices)):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]

二、3种状态

class Solution:def maxProfit(self, prices: List[int]) -> int:n = len(prices)if n < 2:return 0# 定义三种状态的动态规划数组dp = [[0] * 3 for _ in range(n)]dp[0][0] = -prices[0]  # 持有股票的最大利润dp[0][1] = 0           # 不持有股票,且处于冷冻期的最大利润dp[0][2] = 0           # 不持有股票,不处于冷冻期的最大利润for i in range(1, n):# 当前持有股票的最大利润等于前一天持有股票的最大利润或者前一天不持有股票且不处于冷冻期的最大利润减去当前股票的价格dp[i][0] = max(dp[i-1][0], dp[i-1][2] - prices[i])# 当前不持有股票且处于冷冻期的最大利润等于前一天持有股票的最大利润加上当前股票的价格dp[i][1] = dp[i-1][0] + prices[i]# 当前不持有股票且不处于冷冻期的最大利润等于前一天不持有股票的最大利润或者前一天处于冷冻期的最大利润dp[i][2] = max(dp[i-1][2], dp[i-1][1])# 返回最后一天不持有股票的最大利润return max(dp[-1][1], dp[-1][2])

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

题目链接

一、与买卖股票的最佳时机II相同思路

class Solution(object):def maxProfit(self, prices, fee):""":type prices: List[int]:type fee: int:rtype: int"""if len(prices)==0:return 0dp=[[0]*2 for _ in range(len(prices))]dp[0][0]=-prices[0]dp[0][1]=0for i in range(1,len(prices)):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]-fee)return max(dp[-1][0],dp[-1][1])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI架构设计7:TGI

这个专栏主要关注围绕着AI运用于实际的业务场景所需的系统架构设计。整体基于云原生技术&#xff0c;结合开源领域的LLMOps或者MLOps技术&#xff0c;充分运用低代码构建高性能、高效率和敏捷响应的AI中台。该专栏需要具备一定的计算机基础。 若在某个环节出现卡点&#xff0c;…

员工管理和激励怎么做?试试场景化激励解决方案!

截止到2020年底&#xff0c;中国企业主体数量达3858.3万&#xff0c;同比增速达11.1%。如何留住人才、激励人才以强化人才与企业“黏性”&#xff0c;最大化提升员工的忠诚度与敬业度&#xff0c;成为企业未来人才发展战略的主要方向之一。 一、传统激励方式存在哪些不足 传统的…

香橙派 AIpro初体验

香橙派&#xff08;Orange Pi&#xff09;AI Pro开发板是一款高性能的AI开发板&#xff0c;由香橙派联合华为精心打造。香橙派&#xff08;Orange Pi&#xff09;&#xff0c;作为深圳市迅龙软件有限公司倾力打造的开源产品品牌&#xff0c;致力于向全球个人及企业用户提供卓越…

十五届蓝桥杯国赛模拟(下)

题单详情 - 蓝桥云课 (lanqiao.cn) 填空题: 2360 互质 互质的定义是:两个数最大公约数为1,因此此题利用gcd模板即可AC: #include<iostream> using namespace std; int ans; int gcd(int a,int b){return b?gcd(b,a%b):a; } int main(){for(int i1;i<2020;i) if(g…

C#实现Queue的加锁和解锁

在C#中&#xff0c;可以使用lock语句来对队列进行加锁和解锁&#xff0c;以确保在多线程环境下的线程安全。以下是一个简单的示例&#xff1a; using System; using System.Collections.Generic; using System.Threading;public class ThreadSafeQueue<T> {private read…

设计软件有哪些?建模和造型工具篇(3),渲染100邀请码1a12

这次我们接着介绍建模工具。 1、FloorGenerator FloorGenerator是由CG-Source开发的3ds Max插件&#xff0c;用于快速创建各种类型的地板和瓷砖。该插件提供了丰富的地板样式和布局选项&#xff0c;用户可以根据需要轻松创建木质地板、石板地板、砖瓦地板等不同风格的地面。F…

Spring 框架中 Bean 的生命周期?

在 Spring 框架中&#xff0c;Bean 的生命周期包括以下几个阶段: 1. 实例化(Instantiation):在这个阶段&#xff0c;Spring将根据配置文件或注解等方式创建Bean实例&#xff0c;并将其存储在容器中。 2. 属性赋值(PopulateProperties):在这个阶段&#xff0c;Spring将会自动将…

人生二选一:央企就业?美国做博士后?—请看她的抉择

一位30岁的女博士&#xff0c;收到国内央企和德国、美国的博士后邀请函&#xff0c;她该如何选择&#xff1f;知识人网小编推荐这篇文章&#xff0c;为大家解开谜题的同时&#xff0c;也给有同样纠结的学者提供一些启迪。 去年12月底的一个晚上&#xff0c;我收到美国一所高校发…

100个 Unity小游戏系列六 -Unity 抽奖游戏专题四 翻卡游戏

一、演示效果 二、知识点讲解 2.1 布局 void CreateItems(){reward_data_list reward_data_list ?? new List<RewardData>();reward_data_list.Clear();for (int i 0; i < ItemCount; i){GameObject item;if (i 1 < itemParent.childCount){item itemParent…

前端基础入门三大核心之HTML篇:Webpack、Vite、Grunt、Gulp的场景与实战运用

前端基础入门三大核心之HTML篇&#xff1a;Webpack、Vite、Grunt、Gulp的场景与实战运用 一、Webpack&#xff1a;模块打包与优化的集大成者基本概念与作用应用场景实战例 二、Vite&#xff1a;快速开发的现代化构建利器基本概念应用场景实战例 三、Gulp&#xff1a;任务自动化…

护网期间遇到的几个上传bypass waf、edr

1. weblogic部署war的时候 http/1.1 改成http/2绕过waf 其实jar和ear部署应该也可以&#xff0c;但是我没成功。 2. tomcat windows的话部署 1.war变成 1.w/a/r 应该是 1.w\a\r 3. 上传绕过waf filename"x.jsp" 换成 filename x.jsp 还不行把 把ban…

【MySQL精通之路】SQL优化(1)-查询优化(7)-嵌套循环联接

主博客&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 上一篇&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化(6)-索引条件下推-CSDN博客 下一篇&#xff1a; 1.嵌套循环连接算法 一个简单的嵌套循环联接&#xff08;NLJ&#xff09;算法一次从循环中的…

Python解析网页-requests_html

目录 1、什么是requests_html 2、安装与配置 3、快速入门 4、图片下载 1.什么是requests_html requests_html是一个Python库&#xff0c;用于从Web页面中提取数据。 它提供了对HTML内容的解析和处理功能&#xff0c;使您可以轻松地从网页中提取文本、链接、图像和其他元素。…

python字典形式的字符串转换成python字典的两种方法eval()和json.loads()

有时候我们需要将python字典形式的字符串转化成python字典&#xff0c;有两种方法&#xff1a; 方法一&#xff1a;eval() dic_str "{name:jack, age:18, gender:male}" # dic_str {"name":"jane", "age":27, "gender":…

嵌入式UI开发-lvgl+wsl2+vscode系列:4、动画(Animations)

文章目录 一、前言二、动画示例1、示例1&#xff08;基础按钮label的组合动画&#xff09;2、示例2&#xff08;回放效果动画&#xff09;3、示例3&#xff08;贝塞尔曲线3动画&#xff09;4、示例4&#xff08;动画时间轴&#xff09; 三、最后 一、前言 接下来我们进行动画的…

Golang | Leetcode Golang题解之第101题对称二叉树

题目&#xff1a; 题解&#xff1a; func isSymmetric(root *TreeNode) bool {u, v : root, rootq : []*TreeNode{}q append(q, u)q append(q, v)for len(q) > 0 {u, v q[0], q[1]q q[2:]if u nil && v nil {continue}if u nil || v nil {return false}if …

pnpm使用教程

pnpm&#xff08;Performant npm&#xff09;是一个高性能的包管理器&#xff0c;旨在解决npm和yarn中的问题&#xff0c;提供更快的安装速度、节省磁盘空间、良好的monorepo支持以及高级安全性。下面是一个简要的pnpm使用教程&#xff1a; 安装 pnpm 通过 npm 安装 在已安装…

JWT使用方法

目录 基础概念 依赖 生成令牌 工具类 控制层 解析令牌 工具类 网关过滤器 效果 基础概念 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准&#xff08;(RFC 7519).该token被设计为紧凑且安全的&#xff0c;特别适用于分布式站点…

Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 服务(Service)

Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 服务&#xff08;Service&#xff09; 此文档从 Kubernetes 官网摘录 中文地址 英文地址 Kubernetes 中的 Service Service API 是 Kubernetes 的组成部分&#xff0c;它是一种抽象&#xff0c;帮助你将 Pod 集合在网络上公…

AI绘画工具

AI绘画工具利用人工智能技术生成艺术作品&#xff0c;这些工具通常基于深度学习算法&#xff0c;尤其是生成对抗网络&#xff08;GANs&#xff09;。以下是一些流行的AI绘画工具&#xff1a; DeepArt&#xff1a;使用神经风格迁移技术&#xff0c;将任何图片转换成著名画家的风…