代码随想录算法训练营第四十九天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
文章目录
- 121. 买卖股票的最佳时机
- 122.买卖股票的最佳时机II
121. 买卖股票的最佳时机
为什么定义dp数组为二维数组?
dp数组定义,dp(i)[0] 表示第i天持有股票所得最多现金,dp(i)[1]表示第i天不持有股票的状态(未必当前卖出)
这样定义可以表示所有状态,否则dp[i]表示买入,那还要定义第i天卖出,和剩下两种状态持有和不持有
-
题目链接:代码随想录
-
解题思路:
①dp数组,dp(i)[0]表示第i天持有股票的最大现金,dp(i)[1]表示第i天不持有股票的最大现金
②递推公式 1.第i天
持有股票,可能第i天没买,最大现金为前一天持有股票的最大状态;有可能第i天买了,而且一定是第一次买,所以为-price[i]
2.第i天不持有股票**,可能是第i - 1天就不持有状态顺延;也有可能是正好这一天卖出股票,所以总现金为前一天持有状态 + 今天卖出状态
③初始化:
因为要用到i - 1状态,所以要有第0个元素
④遍历顺序:从前向后,因为后状态依赖前状态 -
推导过程
public int maxProfit(int[] prices) {//dp数组//dp[i][0]表示第i天持有股票的最大现金,dp[i][0]表示第i天不持有股票的最大现金int[][] dp = new int[prices.length][2];//初始化//因为i - 1所以,要有第0个元素dp[0][0] = -prices[0];dp[0][1] = 0;//遍历for (int i = 1; i < prices.length; i++) {//第i天持有股票,可能第i天没买,最大现金为前一天持有股票的最大状态;有可能第i天买了,而且一定是第一次买,所以为-price[i]dp[i][0] = Math.max(dp[i - 1][0], -prices[i]);//第i天不持有股票,可能是第i - 1天就不持有状态顺延;也有可能是正好这一天卖出股票,所以总现金为前一天持有状态 + 今天卖出状态dp[i][1] = Math.max(dp[i - 1][1],dp[i - 1][0] + prices[i]);}//一定是第i天不持有股票现金多,不持有一定现金更多return dp[prices.length - 1][1];
}
122.买卖股票的最佳时机II
本题和上一题唯一的区别在于:
当第i天持有并且第i天买入的情况,不再是单纯的-了,而是要算上前一天不持有的状态,因为可以买卖多次
而第i天不持有的情况和之前状态一样
- 题目链接:代码随想录
public int maxProfit(int[] prices) {//dp数组int[][] dp = new int[prices.length][2];//初始化dp[0][0] = -prices[0];dp[0][1] = 0;//遍历for (int i = 1; i < prices.length; i++) {//第i天持有股票,当第i天买入的时候,不再是单纯的-了,而是要算上前一天不持有的状态,因为可以买卖多次dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] - prices[i]);//第i天不持有股票,状态和只能买卖一次的状态一样dp[i][1] = Math.max(dp[i - 1][1],dp[i - 1][0] + prices[i]);}//一定是第i天不持有股票现金多,不持有一定现金更多return dp[prices.length - 1][1];
}
相关文章:
代码随想录算法训练营第四十九天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
文章目录 121. 买卖股票的最佳时机122.买卖股票的最佳时机II 121. 买卖股票的最佳时机 为什么定义dp数组为二维数组? dp数组定义,dp(i)[0] 表示第i天持有股票所得最多现金,dp(i)[1]表示第i天不持有股票的状态(未必当前卖出&#x…...
零基础如何学习挖漏洞?看这篇就够了【网络安全】
前言 有不少阅读过我文章的伙伴都知道,我从事网络安全行业已经好几年,积累了丰富的经验和技能。在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用,提高了安全防护水平。 也有很多小…...
Twitter 推荐算法底有多牛? 已斩获11.7K star
点击上方“Github中文社区”,关注 看Github,每天提升第070期分享 ,作者:Huber | Github中文社区 大家好,我是Huber。 在美国当地时间 3 月 31 日,马斯克履行当初的诺言,他宣布了 Twitter 算法的…...
看过这篇文章,读懂数据分析
一、为什么需要数据分析 数据分析的重要性不言而喻,没有数据,就是感性。数据不会被观点打败,数据只能被数据打败。我们现在妥妥地已经进入了数据时代。 量化IT投资成效,以数据驱动决策 站在公司或者决策者角度,数据最…...
[计算机图形学]光场,颜色与感知(前瞻预习/复习回顾)
一、Light Field / Lumigraph—光场 1.我们看到的是什么 我们的眼睛能够把3D世界转换为2D的成像信号被我们感知,如上面第一幅图,这就是我们看到整个世界的过程,那么如果我们把之前记录的光的信息都完美的放在一个幕布上,那么我们…...
L4公司进军辅助驾驶,放话无图也能跑遍中国
作者 | Amy 编辑 | 德新 高阶智能驾驶走向规模量产,高精地图成为关键的门槛之一。今年,多家车企和智驾公司都喊出「不依赖高精地图,快速大规模落地」的口号。 华为、小鹏、元戎以及毫末等,可能是最快在国内量产 无高精图智…...
【Java笔试强训 17】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥杨辉三角…...
【IPv6】基本概念及字段
IPV4知识点: 字段值 IPv4字段共 字段值解释Version版本版本字段,可以区分V4和V6版本,V4是0100,V6是0110,需要注意的是V4和V6头部除了版本字段位置相同外,其他都是不一样的,因此两个协议不能直…...
数据库中的 Schema 变更实现
线上沙龙-技术流第 30 期营业啦 05月09日(周二)19:30 KaiwuDB - B站直播间 传统数据库操作 Schema 变更时,第一步便是锁表,需持续到 Schema 变更操作完成。这样的做法虽然实现简单,无需考虑事务并发带来的影响&#…...
【C++ 学习 ②】- 类和对象(上)
目录 一、 面向对象的基本理念 1.1 - 什么是对象? 1.2 - 类和对象 1.3 - 面向对象的五条原则 1.4 - 面向过程 vs 面向对象 二、C 中的结构体 三、类的定义 3.1 - 类的两种定义方式 3.2 - 成员变量的命名规范 四、类的访问限定符和封装 4.1 - 访问限定符 …...
最好的物联网教程:软硬结合——从零打造物联网
在大学里不同专业有着不同的追求:机械类与强电类专业学生追求的是 “机电合一” ,既懂机械又懂电气,整个电气机械自动化便能打通。弱电类专业学生追求的是 “软硬结合” ,既懂硬件又懂软件,整个电子产品便能打通。我作…...
猫狗训练集训练报错:Failed to find data adapter that can handle input
这里写自定义目录标题 Jupyter Notebook6.5.4 tensorflow 2.12.0 pillow 9.5.0 numpy 1.23.5 keras 2.12.0 报错详细内容: ValueError: Failed to find data adapter that can handle input: (<class ‘tuple’> containing values of types {“<class ‘k…...
中国网络安全人才需求
如果你是一个想要入门网络安全行业的小白、如果你是网络安全专业在读的大学生、如果你是正在找工作的新手,那么这篇文章你一定要仔细看。毕竟知己知彼百战百胜,知道行业的人才需求才能更好得发挥自己的优势。 当你打开BOSS直聘、拉钩等招聘网站…...
设计模式之组合模式
目录 1、组合模式的定义 2、组合模式例子 3、组合模式实现 3.1 组合模式的结构 3.2 组合模式的分类 3.3 组合模式代码实现(透明组合模式) 4、组合模式的优点 5、组合模式使用场景 1、组合模式的定义 组合模式又名部分整体模式,是用于把…...
计算机基础书籍
一操作系统 二常见问题总结 1.操作系统的特征? 并发、共享、虚拟、异步性 2.进程阻塞与唤醒的条件 等待 I/O 操作完成请求系统资源失败等待信号量或事件等待子进程结束被高优先级进程抢占 3.如何避免死锁? 1、避免资源竞争 2、破坏循环等待条件 3、优…...
保龄球游戏的获胜者、找出叠涂元素----2023/4/30
保龄球游戏的获胜者----2023/4/30 给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家 1 和玩家 2 击中的瓶数。 保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10 。 假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为: …...
jQuery事件
1. jQuery事件注册 单个事件注册 语法: element.事件(function(){}) eg:$(“div”).click(function(){ 事件处理程序 }) 其他事件和原生基本一致。比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等 <!DOCTYP…...
初识SpringCloud
一、软件架构演进 单体架构 垂直架构 分布式架构 SOA架构 微服务架构 二、微服务架构 2.1 微服务理念 "微服务”一词源 于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到http://martinfowler.com/articles/microservices.html微服务是系统架构上…...
安装java配置
目录 安装JDK 编辑 环境变量配置 3、检验环境变量配置 二、安装tomcat 验证Tomcat配置是否成功 三、安装Mysql 一、安装 二、卸载 四、安装Maven 安装JDK 点击更改将C直接给为F即可。 点击确定后进行安装,安装完以后会提示安装JRE; 检测是否已经安装JDK的…...
KBO的选秀会有哪些规定和流程`棒球7号位
KBO(韩国职业棒球联盟)的选秀会有以下规定和流程: 1. 选秀对象:KBO的选秀会主要面向年满18岁及以上的高中和大学生,以及海外球员和自由球员。KBO的球队可以在选秀会中挑选所需的球员,每个球队有一定数量的选…...
实测推荐!2026年毕业论文5000字范文免费下载AI写作工具排行,查重降AI率全攻略
本文由知学术AIPaperGPT内容团队实测撰写 2026-05-11实测推荐!2026年毕业论文5000字范文免费下载AI写作工具排行,查重降AI率全攻略又是一年毕业季,无数本科、硕士生正为毕业…...
基于宏观通胀预测模型的利率预期重定价:华尔街降息路径为何出现系统性回撤?CPI成为关键校准变量
摘要:本文通过宏观通胀预测模型,结合利率预期曲线重定价算法与市场情绪迁移分析,对当前美通胀路径、CPI数据影响及华尔街降息预期变化进行系统性建模,分析利率政策预期从宽松交易向数据依赖模式切换的结构性原因。一、市场情绪迁移…...
GeoServer部署实战与前端地图调用跨域配置详解
1. GeoServer快速部署指南 第一次接触GeoServer的朋友可能会觉得这个开源地图服务器有点神秘,其实它的安装比想象中简单得多。我在多个项目中部署过不同版本的GeoServer,总结出了一套最稳妥的安装流程。GeoServer本质上是一个基于Java的Web应用ÿ…...
告别调参焦虑!用Matlab Regression Learner App快速搞定你的第一个回归模型(附三维曲面拟合实战)
告别调参焦虑!用Matlab Regression Learner App快速搞定你的第一个回归模型(附三维曲面拟合实战) 在科研和工程领域,数据建模是绕不开的核心技能。但传统建模流程往往令人望而生畏:从数据清洗到特征工程,从…...
从U盘到移动硬盘:深入拆解USB存储设备里的BOT和UASP协议栈
从U盘到移动硬盘:深入拆解USB存储设备里的BOT和UASP协议栈 当你将一块移动固态硬盘插入电脑的USB 3.2接口,期待每秒上千兆字节的传输速度时,是否想过这背后隐藏着怎样的协议魔法?在USB存储设备的世界里,BOT(…...
Android启动镜像深度解析:MagiskBoot技术实现与架构设计
Android启动镜像深度解析:MagiskBoot技术实现与架构设计 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk MagiskBoot作为Magisk项目的核心组件,专为Android启动镜像处理而生&#…...
从机器学习转做DFT计算?手把手教你用Python ASE库搞定VASP输入文件(含VC++14安装避坑)
从机器学习转做DFT计算?用Python ASE库高效构建VASP输入文件全指南 当机器学习背景的研究者首次接触第一性原理计算时,往往会被VASP等传统软件的复杂输入文件格式所困扰。POSCAR、INCAR、KPOINTS这些文件的手动编写不仅耗时,还容易出错。本文…...
从“狗的信”看FPGA设计:工程师的幽默隐喻与EDA实践
1. 从一封“狗的信”到工程师的幽默与哲思那天在EE Times上翻到一篇2011年的老文章,标题是《‘Dear God…’ (From the Dog)》,作者是Clive Maxfield。说实话,在一堆充斥着“3nm工艺”、“HBM4 PHY”、“AI Agent”这些硬核技术词汇的行业新闻…...
直播人力成本居高不下?2026十大AI数字人直播平台推荐实现长效运营
引文: 2026年,直播电商的竞争早已从“拼人设”转向了“拼夜间值守效率”。据公开数据显示,AI数字人核心市场规模预计在2026年逼近千亿大关,其中“降本”和“长效运营”是众多商家投身高频无人直播的核心诉求。事实上,…...
Gemini深度研究模式权限与数据隔离机制全披露(含GDPR/等保2.0合规对照表)
更多请点击: https://intelliparadigm.com 第一章:Gemini深度研究模式权限与数据隔离机制全景概览 Gemini 深度研究模式(Deep Research Mode)是 Google 提供的高级推理能力,专为复杂多步信息检索与跨源分析设计。该模…...
