代码随想录算法训练营 Day 49 | 121.买卖股票的最佳时机,122.买卖股票的最佳时机 II
121.买卖股票的最佳时机
讲解链接:代码随想录-121.买卖股票的最佳时机
-
确定 dp 数组以及下标的含义:
- dp[i][0] 表示第 i 天持有股票所得最多现金
- dp[i][1] 表示第 i 天不持有股票所得最多现金
-
确定递推公式:
-
如果第 i 天持有股票即 dp[i][0], 那么可以由两个状态推出来
- 第 i-1 天就持有股票,那么就保持现状,所得现金就是昨天持有股票的所得现金 即:dp[i - 1][0]
- 第 i 天买入股票,所得现金就是买入今天的股票后所得现金即:-prices[i]
- 那么 dp[i][0]应该选所得现金最大的,所以 dp[i][0] = max(dp[i - 1][0], -prices[i]);
-
如果第 i 天不持有股票即 dp[i][1], 也可以由两个状态推出来
- 第 i-1 天就不持有股票,那么就保持现状,所得现金就是昨天不持有股票的所得现金 即:dp[i - 1][1]
- 第 i 天卖出股票,所得现金就是按照今天股票价格卖出后所得现金即:prices[i] + dp[i - 1][0]
- 同样 dp[i][1]取最大的,dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0]);
-
-
dp 数组如何初始化
- dp[0][0]表示第 0 天持有股票,此时的持有股票就一定是买入股票了,因为不可能有前一天推出来,所以 dp[0][0] -= prices[0];
- dp[0][1]表示第 0 天不持有股票,不持有股票那么现金就是 0,所以 dp[0][1] = 0;
-
确定遍历顺序
- 从递推公式可以看出dp[i]都是由dp[i - 1]推导出来的,那么一定是从前向后遍历。
public int maxProfit(int[] prices) {int len = prices.length;int[][] dp = new int[len][2];dp[0][0] -= prices[0];dp[0][1] = 0;for (int i = 1; i < len; i++) {dp[i][0] = Math.max(dp[i - 1][0], -prices[i]);dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i]);}return dp[len - 1][1];
}
122.买卖股票的最佳时机 II
讲解链接:代码随想录-122.买卖股票的最佳时机 II
public int maxProfit(int[] prices) {int len = prices.length;int[][] dp = new int[len][2];dp[0][0] -= prices[0];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]);dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i]);}return dp[len - 1][1];
}
相关文章:
代码随想录算法训练营 Day 49 | 121.买卖股票的最佳时机,122.买卖股票的最佳时机 II
121.买卖股票的最佳时机 讲解链接:代码随想录-121.买卖股票的最佳时机 确定 dp 数组以及下标的含义: dp[i][0] 表示第 i 天持有股票所得最多现金dp[i][1] 表示第 i 天不持有股票所得最多现金 确定递推公式: 如果第 i 天持有股票即 dp[i][0]&…...
精炼计算机网络——数据链路层(一)
文章目录 前言3.1 数据链路和帧3.1.1 数据链路和帧3.1.2 三个基本问题 3.2 点对点协议PPP3.2.1 PPP协议的特点3.2.2 PPP协议3.2.3 PPP协议的工作状态 总结 前言 上篇文章,我们一同学完了物理层的全部内容,在本篇文章中,我们初步学习数据链路…...
猿创征文|Spring系列框架之面向切面编程AOP
⭐️前面的话⭐️ 本篇文章将介绍一种特别重要的思想,AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。 …...
IoT架构设计
当前有一个支持5000万用户并发访问的网站,每个用户都有一个IOT设备,用户可以查看设备状态,接受设备通知 1.架构设计 针对不同的业务量模型,可以采用不同的架构设计,如下: 低业务量模型 针对低业务量模型…...
EasyRecovery16电脑硬盘数据恢复软件功能讲解
硬盘是很常见的存储数据的设备,硬盘中很多重要的数据一旦丢失会很麻烦,不过现在有硬盘数据恢复软件可以自行在家恢复数据。今天的文章就带大家来看看硬盘恢复数据的软件EasyRecovery。 EasyRecovery 是一款专业的数据恢复软件,支持恢复不同存…...
信道通信基础 - 传输介质(双绞线、光纤)
文章目录 1 概述2 传输介质2.1 双绞线2.2 光纤 3 扩展3.1 网工软考真题 1 概述 2 传输介质 2.1 双绞线 双绞线:8 根铜导线每 2 根扭在一起(百兆用 4 根,千兆必须用 8 根)分类 2.2 光纤 光纤:利用光在 玻璃或塑料纤…...
黑马Redis原理篇
黑马Redis原理篇 1、数据结构1.1、动态字符串SDS1.2、IntSet1.3、Dict1.4、ZipList1.5、QuickList1.6、SkipList1.7、RedisObject1.8、五种数据结构1. String(小EMBSTR,大RAW (SDS),少量整数INT)2. List(Redis3.2之后使用QuickList实现&#…...
Sql Server增加字段、修改字段、修改类型、修改默认值
1、修改字段名: alter table 表名 rename column A to B 2、修改字段类型: alter table 表名 alter column 字段名 type not null 3、修改字段默认值 alter table 表名 add default (0) for 字段名 with values 如果字段有默认值,则需要…...
计算机网络第一章(谢希仁第8版学习)
作者:爱塔居 专栏:计算机网络 作者简介:大三学生,希望和大家一起加油 文章目录 目录 文章目录 一、网络、互连网、互联网(因特网)的概念 二、因特网的组成 三、交换方式 3.1 电路交换 3.2 分组交换 3.3 电路…...
Java反射机制
文章目录 Java反射机制一、反射的用处二、获取字节码文件对象的三种方式1.Class.forName形式2.class属性获取形式3.Student对象获取形式 三、获取构造方法四、获取成员变量五、获取成员方法六、反射的好处(面试题)七、反射的实例1.泛型擦除2.修改字符串的…...
New:dbForge Edge 2023 4in1 Enterprise Edition Crack
dbForge Edge 2023 4in1 Enterprise Edition 赋予自己开发和管理 SQL Server、MySQL、Oracle 和 PostgreSQL 数据库的广泛能力 dbForge Edge:您的终极多数据库解决方案 让我们来看看。您需要处理多个数据库管理系统。同时,您希望能够灵活有效地处理范围广…...
基于高效率IP路由查找的内容
访问【WRITE-BUG数字空间】_[内附完整源码和文档] 实现最基本的前缀树查找,调研并实现某种IP前缀查找方案,- 基于forwarding-table.txt数据集(Network, Prefix Length, Port) - 本实验只考虑静态数据集,不考虑表的添加或更新- 以前缀树查找结果为基准,检…...
【VLAN如何划分?6个方法帮你解决!好用又简单!】
如何选择交换机?如何根据项目确定网络结构?交换机做为大家工作中最常用的设备之一,关于它的选择,不得不知。 在做项目时都有这样的疑问,因为参数决定了项目预算,常用的园区组网技术也是多种多样。 我们来…...
网络通信概述 -了解网络编程,什么是ip和端口,url
网络:网络就是一种辅助双方或者多方能够连接到一起的工具。 左:单机游戏(无网络) 右:网络游戏 网络编程:网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信。…...
【Windows线程开发】Windows线程同步技术
我们在上一章节中讲解了关于Windows的线程基础,相信大家已经对线程有了基本的概念。这一章节中,我们来讲讲线程同步技术,包括加锁技术(原子锁和互斥体)和事件,信号量。 文章目录 一.原子锁二.互斥体三.事件…...
【数据结构与算法】- 期末考试
课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…...
股票?看我用python采集数据制作成交量图表
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 开发环境 & 第三方模块: 解释器版本: python 3.8 代码编辑器: pycharm 2021.2 requests: pip install requests 爬虫 pyecharts: pip install pyecharts 数据分析 pandas: pip install pandas 数据分析 基本流…...
C++中的多态,以及多态的实现、以及实现多态的两个特例。
一、 多态是什么? 通俗点说,就是多种形态。具体点就是不同对象完成某种事情,会产生不一样的状态。 举个例子:就好比:买票的时候,普通人、学生、军人等等,他们买票有不同的结果,普通人…...
ESP32-C2系列开发板简介
C2是一个芯片采用4毫米x 4毫米封装,与272 kB内存。它运行框架,例如ESP-Jumpstart和ESP造雨者,同时它也运行ESP-IDF。ESP-IDF是Espressif面向嵌入式物联网设备的开源实时操作系统,受到了全球用户的信赖。它由支持Espressif以及所有…...
AI在狂飙,ChatGPT-4可直接在iPhone上使用啦
今天凌晨,OpenAI 正式在 App Store 推出了 ChatGPT 的 iOS app,瞬间冲上苹果商店免费榜第二名,效率榜第一名。 于是兴致勃勃的去下载体验了一番。整体不错,以后手机使用官方的 ChatGPT 更方便啦!而且使用 GPT4 不再麻…...
【Matlab】综合能源系统多能流优化调度
【Matlab】综合能源系统多能流优化调度 一、引言 在“双碳”目标与能源结构转型的双重驱动下,综合能源系统(Integrated Energy System, IES)作为整合电力、热力、天然气、冷能等多种能源形式的新型能源载体,凭借“多能互补、协同优化”的核心优势,成为破解能源供需矛盾、…...
Z-Image-Turbo-rinaiqiao-huiyewunv 开发工具链:使用Cursor智能IDE加速模型集成代码编写
Z-Image-Turbo-rinaiqiao-huiyewunv 开发工具链:使用Cursor智能IDE加速模型集成代码编写 1. 引言 如果你正在尝试把Z-Image-Turbo这类图像生成模型集成到自己的项目里,可能遇到过这样的场景:对着API文档,一行行敲着重复的请求代…...
WarcraftHelper完整指南:3步解决魔兽争霸3在现代电脑上的兼容性问题
WarcraftHelper完整指南:3步解决魔兽争霸3在现代电脑上的兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典游戏《魔兽…...
YOLOv8与Lingbot-Depth-Pretrain-ViTL-14协同的机器人视觉系统
YOLOv8与Lingbot-Depth-Pretrain-ViTL-14协同的机器人视觉系统 想象一下,一个机器人在仓库里自如穿梭,不仅能一眼认出货架上的螺丝刀和扳手,还能精准判断出哪个离自己最近、哪个最容易抓取。这背后需要的,不仅仅是“看见”物体&a…...
OpenClaw+Qwen3.5-9B:学术论文阅读助手开发实录
OpenClawQwen3.5-9B:学术论文阅读助手开发实录 1. 项目背景与需求 作为一名经常需要阅读大量学术论文的研究人员,我长期被两个问题困扰:一是PDF文献的快速消化效率低下,二是跨领域专业术语的理解成本高昂。传统解决方案要么依赖…...
SEO排名推广软件如何选择_SEO排名推广软件如何监控排名
SEO排名推广软件如何选择 在当今数字营销的世界中,选择合适的SEO排名推广软件是每一个企业和个人网站成功的关键。无论你是初创企业还是已有一段时间在网络上站稳脚跟的品牌,了解如何选择SEO排名推广软件,并有效利用它们来提升你的网站排名&…...
手把手教你用思博伦GSS7000的SimReplayPlus模块:从硬件连接到功率调节的完整避坑指南
手把手教你用思博伦GSS7000的SimReplayPlus模块:从硬件连接到功率调节的完整避坑指南 第一次接触思博伦GSS7000卫星导航模拟器时,面对复杂的硬件接口和PosApp软件里密密麻麻的参数,不少工程师会感到无从下手。作为业内公认的高精度测试设备&a…...
DAMOYOLO-S在Android移动端的应用探索:离线物体识别App原型开发
DAMOYOLO-S在Android移动端的应用探索:离线物体识别App原型开发 你有没有想过,让手机像人眼一样,不联网也能“看懂”周围的世界?比如,在户外没有信号的地方,手机摄像头一扫,就能立刻告诉你眼前…...
卡客车选胎别只看价格!这套判断逻辑让你少花冤枉钱
在商用车运输领域,轮胎选型是绕不开的话题,而绝大多数卡友在选胎时,都会陷入 “唯价格论” 的误区,认为单条轮胎越便宜,运营成本越低。但实际运营中,无数案例证明:价格从来不是决定轮胎价值的核…...
如何用OHHTTPStubs彻底改变iOS网络测试:从入门到精通的完整指南
如何用OHHTTPStubs彻底改变iOS网络测试:从入门到精通的完整指南 【免费下载链接】OHHTTPStubs AliSoftware/OHHTTPStubs: OHHTTPStubs是一个iOS和macOS的Objective-C和Swift库,用于在单元测试或者开发阶段模拟网络请求。它允许开发者设置HTTP stubs&…...
