【动态规划part12】| 309.买卖股票的最佳时机含冷冻期、714.买卖股票的最佳时机含手续费

news2024/10/1 9:50:02

目录

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

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


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

给定一个整数数组prices,其中第  prices[i] 表示第 i 天的股票价格 。​

设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):

  • 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。

注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

 

public int maxProfit(int[] prices) {
        // dp[i][0] 第i天在冷冻期的最大利润
        // dp[i][1] 第i天持有股票的最大利润
        // dp[i][2] 第i天不持有股票不在冷冻期的最大利润
        int[][] dp=new int[prices.length][3];
        // dp[i][0]=dp[i-1][1]+prices[i];
        // dp[i][1]=Math.max(dp[i-1][1],dp[i-1][2]-prices[i],dp[i-1][1]-princes[i]);
        // dp[i][2]=Math.max(dp[i-1][2],dp[i-1][0])
        dp[0][0]=0;
        dp[0][1]=-prices[0];
        dp[0][2]=0;
        for(int i=1;i<prices.length;i++){
            dp[i][0]=dp[i-1][1]+prices[i];
            dp[i][1]=Math.max(Math.max(dp[i-1][1],dp[i-1][2]-prices[i]),dp[i-1][1]-prices[i]);
            dp[i][2]=Math.max(dp[i-1][2],dp[i-1][0]);
        }
        return Math.max(dp[prices.length-1][2],dp[prices.length-1][0]);
    }

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

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

给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。

你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。

返回获得利润的最大值。

注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。

public int maxProfit(int[] prices, int fee) {
        int[][] dp=new int[prices.length][2];
        dp[0][0]=-prices[0]-fee;
        dp[0][1]=0;
        for(int i=1;i<prices.length;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[prices.length-1][1];
    }

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

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

相关文章

【Mysql】万字长文带你快速掌握数据库基础概念及SQL基本操作

文章目录 前言一、数据库相关概念1. 什么是数据库2. 数据库的种类3. Mysql 简介4. SQL简介5. 数据库中常见的数据类型 二、SQL基础1. SQL通用语法2. SQL的主要分类3. DDL&#xff08;数据库&#xff0c;表&#xff0c;索引&#xff0c;视图&#xff09;4. DML&#xff08;数据的…

无涯教程-jQuery - Explode方法函数

爆炸效果可以与show/hide/toggle一起使用。这会将元素爆炸或分解为许多碎片。 Explode - 语法 selector.hide|show|toggle( "explode", {arguments}, speed ); 这是所有参数的描述- pieces - exploded/imploded次数。model - 动画的模式。可以设置为"…

需求分析案例:消息配置中心

本文介绍了一个很常见的消息推送需求&#xff0c;在系统需要短信、微信、邮件之类的消息推送时&#xff0c;边界如何划分和如何设计技术方案。 1、需求 一个系统&#xff0c;一般会区分多个业务模块&#xff0c;并拆分成不同的业务系统&#xff0c;例如一个商城的架构如下&am…

FreeRTOS之计数型信号量

什么是计数型信号量&#xff1f; 计数型信号量相当于队列长度大于1 的队列&#xff0c;因此计数型信号量能够容纳多个资源&#xff0c;这在计数型 信号量被创建的时候确定的。 计数型信号量相关 API SemaphoreHandle_t xSemaphoreCreateCounting( UBaseType_t uxMaxCount, U…

iOS开发-下拉刷新动画CAShapeLayer的strokeStart与strokeEnd指示器动画效果

iOS开发-下拉刷新动画CAShapeLayer的strokeStart与strokeEnd刷新指示器效果 之前开发中实现下拉刷新动画CAShapeLayer的strokeStart与strokeEnd指示器动画效果 一、效果图 二、基础动画 CABasicAnimation类的使用方式就是基本的关键帧动画。 所谓关键帧动画&#xff0c;就是…

Determinantal Point Process:机器学习中行列式的妙用

©PaperWeekly 原创 作者 | Yunpeng Tai 主页 | https://yunpengtai.top/ 在机器学习中&#xff0c;我们通常会面临一个问题&#xff1a;给定一个集合 &#xff0c;从中寻找 个样本构成子集 &#xff0c;尽量使得子集的质量高同时多样性好。比如在推荐系统中&#xff0c;…

AI绘画StableDiffusion实操教程:可爱头像奶茶小女孩(附高清图片)

本教程收集于&#xff1a;AIGC从入门到精通教程汇总 今天继续分享AI绘画实操教程&#xff0c;如何用lora包生成超可爱头像奶茶小女孩 放大高清图已放到教程包内&#xff0c;需要的可以自取。 欢迎来到我们这篇特别的文章——《AI绘画StableDiffusion实操教程&#xff1a;可爱…

element 时间插件 placement 报错

只需一个简单配置一下 align"center" 就不会再报错了&#xff0c;不需要升级element的版本

Vue 常用指令 v-on 自定义参数,事件修饰符

自定义参数就是可以在触发事件的时候传入自定义的值。 文本框&#xff0c;绑定了一个按钮事件&#xff0c;对应的逻辑是sayhi&#xff0c;现在无论按下什么按钮都会触发这个sayhi。但是实际上不是所有的按钮都会触发&#xff0c;只会限定某一些按钮&#xff0c;最常见的按钮就…

【C语言项目】多臂井径电子测井成像项目(一)

目录 1、目的和意义2、本章概述3、串口R2324、OpenGL5、开发环境6、环境配置6.1、VS安装OpenGL6.2、虚拟串口生成工具 7、成品速览参考文献 1、目的和意义 本项目为获取矿藏地层的油气当量和及时精确地测量含油、含气层的压力及温度值的需求&#xff0c;辅助生产管理人员完成对…

【Nginx】keepalived安装配置

环境说明 Centos 7版本 主机名 IP地址 其他 nginx 192.168.10.150 主 nginx-2 192.168.10.151 备 配置 主-192.168.10.150 [rootnginx ~]# yum install keepalived [rootnginx ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived #定义全…

【2023Java 面试题全集】实用、全面、系统,助你一路通关!

前两个月&#xff0c;公司 java 岗位面了 50候选人&#xff0c;面试下来发现几类过不了的情况&#xff0c;分享大家防止踩坑&#xff1a; 新技术倒是掌握得挺多&#xff0c;基础的却一塌糊涂。 工作多年&#xff0c;从未学习过工作之外的技术栈&#xff0c;也没有对技术有任何…

Golang操作阿里云OSS上传文件

为什么要使用OSS&#xff1f;应用场景是什么&#xff1f; 最近在开发考试系统&#xff0c;里面需要上传课件&#xff0c;课件包括pdf&#xff0c;map等等各种类型的文件&#xff0c;这些文件不能像图片一样&#xff0c;直接上传到项目目录下面&#xff0c;需要单独存放&#x…

iOS开发-下拉刷新动画loading旋转指示器动画效果

iOS开发-下拉刷新动画loading旋转指示器动画效果 之前开发中实现下拉刷新动画loading旋转指示器动画效果 一、效果图 二、基础动画 CABasicAnimation类的使用方式就是基本的关键帧动画。 所谓关键帧动画&#xff0c;就是将Layer的属性作为KeyPath来注册&#xff0c;指定动画…

尚医通10:科室排班日期+科室排班详细数据+搭建平台用户系统前端环境

内容介绍 1、查看科室排班日期统计数据 2、查看科室排班详细数据 3、搭建平台用户系统前端环境 4、首页静态数据整合 5、首页数据显示接口 6、首页数据显示前端 查看科室排班日期统计数据 1确认需求 2、实现接口 1&#xff09;分析接口 *参数&#xff1a;page、limit、h…

C语言基础入门详解一

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 前言&#xff1a; 初识C语言 //#include 相当于java的import,stdio全称&#xff1a;st…

秒级体验本地调试远程 k8s 中的服务

点击上方蓝色字体&#xff0c;选择“设为星标” 回复”云原生“获取基础架构实践 背景 在这个以k8s为云os的时代&#xff0c;程序员在日常的开发过程中&#xff0c;肯定会遇到各种问题&#xff0c;比如&#xff1a;本地开发完&#xff0c;需要部署到远程k8s集群&#xff0c;本地…

【雕爷学编程】Arduino动手做(175)---机智云ESP8266开发板模块5

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

区间预测 | MATLAB实现VAR向量自回归时间序列区间预测

区间预测 | MATLAB实现VAR向量自回归时间序列区间预测 目录 区间预测 | MATLAB实现VAR向量自回归时间序列区间预测预测效果基本介绍程序设计参考资料预测效果 基本介绍 区间预测 | MATLAB实现VAR向量自回归时间序列区间预测 VAR(Vector Autoregression)模型是一种广泛应用于时…

pytest 自定义HOOK函数

除了系统提过的HOOK函数外&#xff0c;也可以通过自定义HOOK的方式实现想要的功能。 首先创建一个py文件&#xff0c;里面定义自己的HOOK函数&#xff0c;主要pytest里面的hook函数必须以pytest开头。 #myhook.pydef pytest_myhook(user):"""自定义HOOK函数&q…