当前位置: 首页 > news >正文

代码随想录算法训练营 动态规划part11

一、买卖股票的最佳时机III  

123. 买卖股票的最佳时机 III - 力扣(LeetCode)

请选一个喜欢的吧/(ㄒoㄒ)/~~123. 买卖股票的最佳时机 III - 力扣(LeetCode)

class Solution {public int maxProfit(int[] prices) {if(prices==null || prices.length==0) {return 0;}int n = prices.length;//定义二维数组,5种状态  int[][] dp = new int[n][5];//初始化第一天的状态dp[0][0] = 0;dp[0][1] = -prices[0];dp[0][2] = 0;dp[0][3] = -prices[0];dp[0][4] = 0;for(int i=1;i<n;++i) {//dp[i][0]相当于初始状态,它只能从初始状态转换来dp[i][0] = dp[i-1][0];//处理第一次买入、第一次卖出dp[i][1] = Math.max(dp[i-1][1],dp[i-1][0]-prices[i]);dp[i][2] = Math.max(dp[i-1][2],dp[i-1][1]+prices[i]);//处理第二次买入、第二次卖出dp[i][3] = Math.max(dp[i-1][3],dp[i-1][2]-prices[i]);dp[i][4] = Math.max(dp[i-1][4],dp[i-1][3]+prices[i]);}//返回最大值return Math.max(Math.max( Math.max(dp[n-1][0],dp[n-1][1]),Math.max(dp[n-1][2],dp[n-1][3]) ),dp[n-1][4]);}
}

二、买卖股票的最佳时机IV 

188. 买卖股票的最佳时机 IV - 力扣(LeetCode)

同上一题一样ε(┬┬﹏┬┬)3188. 买卖股票的最佳时机 IV - 力扣(LeetCode)

class Solution {public int maxProfit(int k, int[] prices) {if(prices==null || prices.length==0) {return 0;}return dfs(0,0,0,k,prices);}//计算k次交易,index表示当前是哪天,status是买卖状态,coutnt为交易次数private int dfs(int index, int status, int count, int k, int[] prices) {if(index==prices.length || count==k) {return 0;}int a=0,b=0,c=0;//保持不动a = dfs(index+1,status,count,k,prices);if(status==1) {//卖一股,并将交易次数+1b = dfs(index+1,0,count+1,k,prices)+prices[index];} else {//买一股c = dfs(index+1,1,count,k,prices)-prices[index];}return Math.max(Math.max(a,b),c);}
}

相关文章:

代码随想录算法训练营 动态规划part11

一、买卖股票的最佳时机III 123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09; 请选一个喜欢的吧/(ㄒoㄒ)/~~123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxProfit(int[] prices) {if(pricesnul…...

新概念英语(第二册)复习——Lesson 16 - Lesson20

前言 新概念英语的16-20课&#xff0c;从21课开始&#xff0c;每天一课的速度更新&#xff0c;方便你能快速跟上。 文章目录 前言Lesson 16 - A polite request原文译文单词 Lesson 17 - Always Young原文译文单词 Lesson 18 - He often does this!原文译文单词Lesson 19 - So…...

[题] n-皇后问题 #深搜 #DFS

题目 AcWing 843. n-皇后问题 代码 #include<bits/stdc.h> using namespace std; const int N 20; int n, p[N]; char g[N][N]; bool col[N], dg[N], udg[N]; void D (int u){if(u n){for(int j 0; j < n; j )puts(g[j]);cout << endl;return ;}for(int i…...

十小时开源了一个加密算法仓库,功能强大,后端开发人员狂喜!

写在前面 昨晚上睡觉前我就在想能不能把多个加密算法集成到一个库中&#xff0c;方便开发者调用&#xff0c;说干就干&#xff0c;今天肝了一天&#xff0c;中午直接吃的外卖哈哈哈哈&#xff0c;终于把仓库开源了&#xff0c;欢迎各位Go开发者Star和Fork! 仓库地址 go-cryp…...

标准化套利的使用

交易对象&#xff1a;目前使用郑商所&#xff0c;大商所的spd标准化套利组合进行交易。 交易平台&#xff1a;易盛极星极星产品网 手续费研究:白糖期货手续费和保证金2023年09月更新 - 九期网 本人使用的期货交易公司&#xff1a;中信期货&#xff08;幸亏资金量大&#xff…...

【MySQL数据库事务操作、主从复制及Redis数据库读写分离、主从同步的实现机制】

文章目录 MySQL数据库事务操作、主从复制及Redis数据库读写分离、主从同步的实现机制ACID及如何实现事务隔离级别&#xff1a;MVCC 多版本并发控制MySQL数据库主从复制主从同步延迟怎么处理Redis 读写分离1.什么是主从复制2.读写分离的优点 Redis为什么快呢&#xff1f; MySQL数…...

十五、红外遥控器

十五、红外遥控器 介绍基本接收和发送遥控器键码外部中断和外部中断寄存器 红外解码中断函数红外遥控电机模块电机调速 介绍 基本接收和发送 空闲状态&#xff1a;红外LED不亮&#xff0c;接收头输出高电平发送低电平&#xff1a;红外LED以38KHz闪烁&#xff0c;接收头输出低…...

diot函数解析

文章目录 前言一、Rio_readinitb二、Rio_readlineb三、strstr四、strcat五、Open_clientfd六、Rio_writen总结 前言 备战CSAPP中的ProxyLab时解析书上的diot函数中遇到了一些不会的函数&#xff0c;遂解析记录。 一、Rio_readinitb 读和解析请求行 Rio_readinitb(&rio,…...

Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数

Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数 Python函数绘图与高等代数互融实例(二):闪点函数 Python函数绘图与高等代数互融实例(三):设置X|Y轴|网格线 Python函数绘图与高等代数互融实例(四):设置X|Y轴参考线|参考区域 Python函数绘图与高等代数互融实例(五…...

Python 判断回文数

"""判断输入的数是否为回文数介绍&#xff1a;回文数&#xff1a;数字从高位到低位正序排列和低位到高位逆序排列都是同一数值例如&#xff1a;数字 1221 无论正序还是逆序都是 1221知识点&#xff1a;1、获取字符串长度函数len()2、条件语句if/elif/else3、循环…...

人工智能在金融领域的五个应用案例

随着科技的进步&#xff0c;人工智能(Artificial Intelligence&#xff0c;AI)正逐渐渗透到各个行业中&#xff0c;其中包括金融领域。本文介绍人工智能在金融领域的五个应用案例&#xff0c;以期帮助大家更好地了解这个新兴技术在金融中的价值和作用。 文章目录 Part1 风险管理…...

java 工程管理系统源码+项目说明+功能描述+前后端分离 + 二次开发

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…...

Effective C++看书笔记(2):构造/析构/赋值运算

构造/析构/赋值运算 5&#xff1a;了解C默默编写并调用哪些函数6&#xff1a;如果不想使用编译器自动生成的函数&#xff0c;就该明确拒绝7&#xff1a;为多态基类声明virtual析构函数8&#xff1a;别让异常逃离析构函数9&#xff1a;绝不在构造和析构过程中调用virtual函数10&…...

交换奇偶位:交换一个整数的二进制的奇偶位置(仅考虑正数情况)

方法二&#xff1a; 设计思想&#xff1a; 0xAAAAAAAA 的二进制表示为 10101010...&#xff08;从最低位开始&#xff09; 0x55555555 的二进制表示为 01010101...&#xff08;从最低位开始&#xff09; 问题&#xff1a;更加想不到掩码&#xff01;&#xff01;&#xf…...

Unity中的两种ScriptingBackend

一&#xff1a;前言 二&#xff1a;两种模式的介绍 ios&#xff1a;unity只有il2cpp模式的编译才支持64位系统&#xff0c;mono是不支持的&#xff0c;在快速开发阶段仍然支持Mono&#xff0c;但是不能再向Apple提交Mono(32位)的应用 苹果在2016年1月就要求所有新上架游戏必须支…...

vue3硅谷甄选01 | 使用vite创建vue3项目及项目的配置 环境准备 ESLint配置 prettier配置 husky配置 项目集成

文章目录 使用vite创建vue3项目及项目的配置1.环境准备2.项目配置ESLint校验代码工具配置 - js代码检测工具1.安装ESLint到开发环境 devDependencies2.生成配置文件:.eslint.cjs**3.安装vue3环境代码校验插件**4. 修改.eslintrc.cjs配置文件5.生成ESLint忽略文件6.在package.js…...

蓝牙核心规范(V5.4)10.5-BLE 入门笔记之HCI

HCI全称:HOST Constroller Interface 主机控制器接口(HCI)定义了一个标准化的接口,通过该接口,主机可以向控制器发出命令,并且控制器可以与主机进行通信。规范被分成几个部分,第一部分仅从功能的角度定义接口,不考虑具体的实现机制,而其他部分定义了在使用四种可能的…...

【计算机毕业设计】基于SpringBoot+Vue记帐理财系统的设计与实现

博主主页&#xff1a;一季春秋博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容&#xff1a;毕业设计(Java项目、小程序、安卓等)、简历模板、学习资料、…...

2023年中国研究生数学建模竞赛E题

出血性脑卒中临床智能诊疗建模 一、背景介绍 出血性脑卒中指非外伤性脑实质内血管破裂引起的脑出血&#xff0c;占全部脑卒中发病率的10-15%。其病因复杂&#xff0c;通常因脑动脉瘤破裂、脑动脉异常等因素&#xff0c;导致血液从破裂的血管涌入脑组织&#xff0c;从而造成脑部…...

基于springboot+vue的大学生科创项目在线管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

电容滤波实战:如何为你的MCU电源选择100nf和1uf电容组合?

电容滤波实战&#xff1a;如何为你的MCU电源选择100nf和1uf电容组合&#xff1f; 在嵌入式系统设计中&#xff0c;电源滤波电容的选择往往被新手工程师低估——直到他们遇到莫名其妙的系统重启、ADC采样跳变或通信误码。我曾在一个工业控制器项目上&#xff0c;因为0.1μF电容的…...

FramePack深度解析:如何利用下一代帧预测技术创作高质量AI舞蹈视频

FramePack深度解析&#xff1a;如何利用下一代帧预测技术创作高质量AI舞蹈视频 【免费下载链接】FramePack Lets make video diffusion practical! 项目地址: https://gitcode.com/gh_mirrors/fr/FramePack FramePack是一款革命性的视频扩散神经网络框架&#xff0c;它通…...

、SEATA分布式事务——XA模式讼

MySQL 中的 count 三兄弟&#xff1a;效率大比拼&#xff01; 一、快速结论&#xff08;先看结论再看分析&#xff09; 方式 作用 效率 一句话总结 count(*) 统计所有行数 最高 我是专业的&#xff01;我为统计而生 count(1) 统计所有行数 同样高效 我是 count(*) 的马甲兄弟…...

教你一个识别合作方潜在风险的小技巧

在如今复杂多变的商业环境中&#xff0c;企业间的合作日益频繁。然而&#xff0c;互利的商业关系中往往隐藏着潜在风险。因此&#xff0c;掌握合作方的关键信息并避开风险&#xff0c;对于经营者至关重要。今天为大家介绍几个实用小技巧&#xff0c;教您如何通过风鸟快速识别一…...

STC单片机看门狗避坑指南:从原理到调试的5个关键步骤

STC单片机看门狗避坑指南&#xff1a;从原理到调试的5个关键步骤 在嵌入式系统开发中&#xff0c;稳定性是衡量产品质量的重要指标。作为51单片机开发者&#xff0c;我们常常会遇到程序跑飞、死循环等异常情况&#xff0c;这时内部看门狗&#xff08;WDT&#xff09;就成了最后…...

告别SPI瓶颈:用STM32的FSMC并行接口驱动LAN9252,榨干EtherCAT从站性能

突破EtherCAT从站性能极限&#xff1a;STM32 FSMC并行接口驱动LAN9252全解析 在工业自动化领域&#xff0c;实时以太网协议EtherCAT因其卓越的性能表现已成为运动控制系统的首选。然而许多工程师在实际部署中常遇到一个尴尬局面——主站协议处理速度飞快&#xff0c;而从站控制…...

51单片机波形发生器DIY:从DAC0832到LM358,手把手教你输出四种标准波形

51单片机波形发生器实战&#xff1a;从芯片选型到信号调理的全链路解析 在电子设计领域&#xff0c;波形发生器是验证电路性能的基础工具。市售成品动辄上千元的价格让许多爱好者望而却步&#xff0c;而基于51单片机的DIY方案不仅成本可控&#xff0c;更能深入理解数字到模拟转…...

Nature Reviews Genetics 基因调控网络:从相关模型到因果解释

基因调控网络&#xff1a;从相关模型到因果解释 Gene regulatory networks: from correlative models to causal explanations 摘要 基因调控网络解释了基因组如何控制细胞行为和组织形态建成&#xff0c;它将分子机制与功能输出连接起来。如今&#xff0c;单细胞技术以前所未有…...

Bitwarden Web Vault:终极密码管理平台完全指南

Bitwarden Web Vault&#xff1a;终极密码管理平台完全指南 【免费下载链接】web The website vault (vault.bitwarden.com). 项目地址: https://gitcode.com/gh_mirrors/web1/web Bitwarden Web Vault 是一款功能强大的开源密码管理平台&#xff0c;它以 Angular 应用为…...

hyn/multi-tenant性能优化技巧:缓存策略与连接管理

hyn/multi-tenant性能优化技巧&#xff1a;缓存策略与连接管理 【免费下载链接】multi-tenant Run multiple websites using the same Laravel installation while keeping tenant specific data separated for fully independent multi-domain setups, previously github.com/…...