day-50 代码随想录算法训练营(19)动态规划 part 11
123.买卖股票的最佳时机|||
分析:只能买卖两次,就是说有五个状态:
- 没有买过
- 第一次买入
- 第一次卖出
- 第二次买入
- 第二次卖出
思路:二维数组,记录五个状态
- 1.dp存储:dp[i][1] 第一次买入 dp[i][2] 第一次卖出 dp[i][3] 第二次买入 dp[i][4] 第二次卖出
- 2.dp[i][1]=max(dp[i-1][1],dp[i-1][0]-prices[i])
- dp[i][2]=max(dp[i-1][2],dp[i-1][1]+prices[i])
- dp[i][3]=max(dp[i-1][3],dp[i-1][2]-prices[i])
- dp[i][4]=max(dp[i-1][4],dp[i-1][3]+prices[i])
- 3.初始化:dp[0][1]=-prices[0] dp[0][3]=-prices[0]
- 4.遍历顺序:1~n
class Solution {
public:int maxProfit(vector<int>& prices) {int n=prices.size();vector<vector<int>> dp(n,vector<int>(5,0));dp[0][1]=-prices[0];dp[0][3]=-prices[0];for(int i=1;i<n;i++){dp[i][0]=dp[i-1][0];//第一天不持有dp[i][1]=max(dp[i-1][1],dp[i-1][0]-prices[i]);dp[i][2]=max(dp[i-1][2],dp[i-1][1]+prices[i]);dp[i][3]=max(dp[i-1][3],dp[i-1][2]-prices[i]);dp[i][4]=max(dp[i-1][4],dp[i-1][3]+prices[i]);}return dp[n-1][4];}
};
188.买卖股票的最佳时机IV
分析:买卖几次成了变量
思路:
- 1.dp存储:2k+1个状态的买卖金额
- 2.动态转移方程(递推式):
- j奇数:dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]-prices[i])
- j偶数:dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]+prices[i])
- 3.初始化:j奇数:dp[i][j]=-prices[0]
- 4.遍历顺序:1-n
class Solution {
public:int maxProfit(int k, vector<int>& prices) {int n=prices.size();int m=k*2;vector<vector<int>>dp(n,vector<int>(m+1,0));for(int i=1;i<=m;i+=2) dp[0][i]=-prices[0]; //初始化for(int i=1;i<n;i++){dp[i][0]=dp[i-1][0];//第一天不持有for(int j=1;j<m+1;j++){if(j%2!=0) dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]-prices[i]);//第j天持有else dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]+prices[i]);//第j天卖出}}return dp[n-1][m];}
};
309.买卖股票的最佳时机含冷冻期
分析:现在有四种状态:买入股票 冷冻期后没买入 卖出股票 冷冻期
思路:dp存储四种状态
- 1.dp存储:四种状态
- 2.动态转移方程(递推式):
- dp[i][0]=max(dp[i-1][0],max(dp[i-1][1]-prices[i],dp[i-1][3]-prices[i]))
- dp[i][1]=max(dp[i-1][1],dp[i-1][3])
- dp[i][2]=dp[i-1][0]+prices[i]
- dp[i][3]=dp[i-1][2]
- 3.初始化:dp[0][0]=-prices[0]
- 4.遍历顺序:1~n
class Solution {
public:int maxProfit(vector<int>& prices) {int n=prices.size();vector<vector<int>>dp(n,vector<int>(4,0));dp[0][0]=-prices[0];for(int i=1;i<n;i++){dp[i][0]=max(dp[i-1][0],max(dp[i-1][1]-prices[i],dp[i-1][3]-prices[i]));//持有dp[i][1]=max(dp[i-1][1],dp[i-1][3]);//冷冻期后面不持有dp[i][2]=dp[i-1][0]+prices[i];//卖出dp[i][3]=dp[i-1][2];//冷冻期}return max(dp[n-1][3],max(dp[n-1][1],dp[n-1][2]));//最大值一定不持有}
};
相关文章:
day-50 代码随想录算法训练营(19)动态规划 part 11
123.买卖股票的最佳时机||| 分析:只能买卖两次,就是说有五个状态: 没有买过第一次买入第一次卖出第二次买入第二次卖出 思路:二维数组,记录五个状态 1.dp存储:dp[i][1] 第一次买入 dp[i][2] 第一次卖…...
自定义权限指令与防止连点指令
1.权限指令 // 注册一个全局自定义权限指令 v-permission Vue.directive(permission, {inserted: function(el, binding, vnode) {const {value} binding; // 指令传的值// user:edit:phone,sysData:sampleconst permissions [user:edit:address, sysData:entrust, sysData:…...
UE5、CesiumForUnreal实现瓦片坐标信息图层效果
文章目录 1.实现目标2.实现过程2.1 原理简介2.2 cesium-native改造2.3 CesiumForUnreal改造2.4 运行测试3.参考资料1.实现目标 参考CesiumJs的TileCoordinatesImageryProvider,在CesiumForUnreal中也实现瓦片坐标信息图层的效果,便于后面在调试地形和影像瓦片的加载调度等过…...
PostgreSQL执行计划
1. EXPLAIN命令 1)PostgreSQL中EXPLAIN命令的语法格式: postgres# \h explain Command: EXPLAIN Description: show the execution plan of a statement Syntax: EXPLAIN [ ( option [, ...] ) ] statement EXPLAIN [ ANALYZE ] [ VERBOSE ] statementwhere option can be…...
【2023 睿思芯科 笔试题】~ 题目及参考答案
文章目录 1. 题目 & 答案单选题编程题问题1:解析1:问题2:解析2: 声明 名称如标题所示,希望大家正确食用(点赞转发评论) 本次笔试题以两种形式考察的,分别是:选择题&a…...
Java手写AVL树
Java手写AVL树 1. AVL树实现思路原理 为了解释AVL树的实现思路原理,下面使用Mermanid代码表示该算法的思维导图: #mermaid-svg-ycH8kKpzVk2HWEby {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid…...
运维自动化:提高效率的秘诀
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
C++设计模式_05_Observer 观察者模式
接上篇,本篇将会介绍C设计模式中的Observer 观察者模式,和前2篇模板方法Template Method及Strategy 策略模式一样,仍属于“组件协作”模式。Observer 在某些领域也叫做 Event 。 文章目录 1. 动机( Motivation)2. 代码…...
github网站打不开,hosts文件配置
首先获取github官网的ip地址, 打开cmd,输入ping github.com 配置: #github 140.82.114.4 github.com 199.232.69.194 github.global.ssl.fastly.net 185.199.108.153 assets-cdn.github.com 185.199.110.153 assets-cdn.github.com 185.199…...
总结PCB设计的经验
一般PCB基本设计流程如下:前期准备->PCB结构设计->PCB布局->布线->布线优化和丝印->网络和DRC检查和结构检查->制版。: : 第一:前期准备。这包括准备元件库和原理图。“工欲善其事,必先利其器”,要做出一…...
HCIE-HCS规划设计搭建
1、相关术语 1、等价路由 等价路由(Equal-cost routing)是一种网络路由策略,用于在网络中选择多个具有相同路由度量(路由距离或成本)的最佳路径之一来转发数据流量。 当存在多个路径具有相同的路由度量时,…...
c语言输出杨辉三角
#include<stdio.h> int main() {int x 0; //表示杨辉三角的的大小int y 1;printf("请输入x的值: ");scanf("%d", &x);for (int i 0; i < x; i) {for (int j 0; j < i; j) {if (j 0 || i 0) {y 1;}else {y y * (i - j 1) / j;}pri…...
性能测试-持续测试及性能测试建设(22)
什么是持续测试? 持续测试定义为:在软件交付流水线中执行自动化测试的过程,目的是获得关于预发布软件业务风险的即时反馈。 完成持续测试,我们还是需要回到定义中,它有3个关键词:软件交付流水线、自动化测试、即时反馈。 首先,持续测试需要具备一条完整的流水线,其代表…...
嵌入式C 语言中的三块技术难点
C 语言在嵌入式学习中是必备的知识,甚至大部分操作系统都要围绕 C 语言进行,而其中有三块技术难点,几乎是公认级别的“难啃的硬骨头”。 今天就来带你将这三块硬骨头细细拆解开来,一定让你看明白了。 0x01 指针 指针是公认…...
【斗破年番】紫研新形象,萧炎终成翻海印,救援月媚,三宗决战
Hello,小伙伴们,我是小郑继续为大家深度解析斗破年番。 斗破苍穹年番动画更新了,小医仙帅气回归,萧炎紫妍成功进入山谷闭关苦修,美杜莎女王守护没多久,就因蛇人族求救离开。从官方公布的最新预告来看,萧炎紫…...
差分方程模型:国民总收入(GDP)的乘数-加速数模型
【背景知识-凯恩斯经济增长模型】 凯恩斯(John M.Keynes)建立了著名的国民经济增长模型。令Y表示国民总收入,C表示总消费,E为总支出,I表示投资,G为政府的投入(如基建等)。那么有 【6.1】 其中࿰…...
【C语言】指针和数组笔试题解析(1)
指针是C语言的灵魂,他的玩法多种多样,这篇文章带来指针的笔试题详解,可以帮助我们更好的理解与巩固指针的知识 目录 预备知识:题目:一维数组:二维数组: 题目比较多,但切记戒骄戒躁&a…...
Vue中组件的三种注册方式
组件的注册 1.全局注册: 在全局注册中,你需要确保在 Vue 根实例之前导入并注册组件。通常,你会在入口文件(例如 main.js)中执行这些操作。 // main.jsimport Vue from vue; import App from ./App.vue;// 导入全局组…...
docker 和k8s 入门
docker 和k8s 入门 本文是云原生的学习记录,可以参考以下文档 k8s https://www.yuque.com/leifengyang/oncloud 相关视频教程可参考如下 https://www.bilibili.com/video/BV13Q4y1C7hS?p2&vd_source0882f549dac54045384d4a921596e234 相对于公有云&#x…...
基于Yolov8的交通标志牌(TT100K)识别检测系统
1.Yolov8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活…...
使用Python编写一个多线程的12306抢票程序
国庆长假即将到来,大家纷纷计划着自己的旅行行程。然而,对于很多人来说,抢购火车票人们成了一个令人头疼的问题。12306网站的服务器经常因为流量高而崩溃,导致抢票变得越来越严重异常困难。 首先,让我们来了解一下1230…...
DT Paint Effects工具(三)
管 分支 使用细枝 叶 力 使用湍流 流动画 渲染全局参数 建造盆栽植物...
SpringBoot整合Mybatis
目录 (1)引入依赖 (2)编写Mapper接口 (3)编写Mapper映射文件 (4)编写yml配置文件 (5)编写测试类 (1)引入依赖 <dependency>…...
Java后端使用POST请求向mysql中插入Json数据的问题
1.后端请求正常 但数据表中value没有值 原因 json数据属性不符合spring解析格式,json属性名称的大写字母不符合spring要求 以下为为错误示范 1 Test 以大写字母开头, 2 tTest 小写字母开头,但是第二个字母是大写解决方案 实体类属性加上Jso…...
豆瓣图书评分数据的可视化分析
导语 豆瓣是一个提供图书、电影、音乐等文化产品的社区平台,用户可以在上面发表自己的评价和评论,形成一个丰富的文化数据库。本文将介绍如何使用爬虫技术获取豆瓣图书的评分数据,并进行可视化分析,探索不同类型、不同年代、不同…...
SpringBoot整合Easy-ES操作演示文档
文章目录 SpringBoot整合Easy-ES操作演示文档1 概述及特性1.1 官网1.2 主要特性 2 整合配置2.1 导入POM2.2 Yaml配置2.3 EsMapperScan 注解扫描2.4 配置Entity2.5 配置Mapper 3 基础操作3.1 批量保存3.2 数据更新3.3 数据删除3.4 组合查询3.5 高亮查询3.6 统计查询 4 整合异常4…...
IDEA控制台取消悬浮全局配置SpringBoot配置https
IDEA控制台取消悬浮 idea 全局配置 SpringBoot(Tomcat) 配置https,同时支持http 利用JDK生成证书 keytool -genkey -alias httpsserver -keyalg RSA -keysize 2048 -keystore server.p12 -validity 3650配置类 Configuration public class TomcatConfig {Value(&quo…...
MySQL8--my.cnf配置文件的设置
原文网址:MySQL8--my.cfg配置文件的设置_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL8的my.cnf的配置。 典型配置 [client] default-character-setutf8mb4[mysql] default-character-setutf8mb4[mysqld] #服务端口号 默认3306 port3306datadir /work/docker…...
Qt基于paintEvent自定义CharView
Qt基于paintEvent自定义CharView 鼠标拖动,缩放,区域缩放, 针对x轴,直接上代码 charview.h #ifndef CHARVIEW_H #define CHARVIEW_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #inclu…...
Mac FoneLab for Mac:轻松恢复iOS数据,专业工具助力生活
如果你曾经不小心删除了重要的iOS数据,或者因为各种原因丢失了这些数据,那么你一定知道这种痛苦。现在,有一个名为Mac FoneLab的Mac应用程序,它专门设计用于恢复iOS数据,这可能是你的救星。 Mac FoneLab for Mac是一种…...
discuz注册/免费网站排名优化在线
这几天无聊,就去研究排序算法,话不多说,用事实说话。using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Diagnostics;namespace 排序算法大PK {class Program{s…...
wordpress 漏洞扫描/pc网站建设和推广
新手想半天不会写,必须用二维数组吗?我想求面试成绩和笔试成绩的总分和平均分,大神给个思路!!!//下面是我创建的StudentScore类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MyScore{class St…...
高职图书馆网站建设大赛/产品营销策略有哪些
一、申请条件(以下各条必须同时满足)1、完成硕士阶段全部课程学习,且成绩优良。2、外语水平优秀:外语成绩应获得全国大学英语六级460分及以上,或托福机考80分以上,或雅思≥5.5以上(有效期5年,即2010年12月及以后的成绩…...
成都网站建设公司有哪些/关键词优化seo外包
在xcode8 升级后上传ipa文件 需要设置一个安全提示,现在上传app store的方式为xcode或者 application loader 一、xcode 准备工作完成后点击Product----->Archive------>upload to App store 二、application loader 程序完成后,1、先清空products…...
主页模板/网站做优化
一、准备工作1、安装JDK并且配置好环境变量二、安装mysql1、下载mysql安装包,放到带安装的目录下。2、配置环境变量3、新增my.ini文件新建my.ini文件并编辑写入如下内容,不需要另外创建data目录,下一步初始化操作的时候会自动创建。在安装目录…...
做网站的日文/广州seo公司如何
/***小奔数据生成器 请仔细阅读下方提示! 生成数据共有4步 ! 请严格按照指示操作! ***/#include <stdio.h> #include <algorithm> #include <stdlib.h> #include <time.h> #include <string.h> #include <c…...