代码随想录Day55 | 股票买卖

TMS320F280049C 学习笔记11 控制率加速器 CLA 例程 总结了TI官方在C2000Ware_3_01_00_00版本中提供的7个与CLA相关的例程。 阅读详情

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

文档讲解:代码随想录
视频讲解: 动态规划来决定最佳时机,这次有冷冻期!| LeetCode:309.买卖股票的最佳时机含冷冻期
状态

增加冷冻期后状态又发生了改变,相当于一天可能又4种状态

持有股票
今天卖出股票
冷冻期
未持有股票

  1. dp数组 和 递推公式
    所以dp数组的应该这样来写
vector<vector<int>> dp(len,vector<int>(4))

dp[i][0] 就表示第i天持有股票的状态,其可能是之前就持有,或者今天买入,而对于买入由于考虑冷冻期,所以要么前一天是冷冻期,要么前一天是没持有股票

dp[i][0] = max(dp[i-1][0],dp[i-1][2]-prices[i],dp[i-1][3]-prices[i]);

dp[i][1] 表示第i天卖出股票的状态,那么就是前一天持有股票的.

dp[i][1] = dp[i-1][0]+prices[i];

dp[i][2] 表示第i天是冷冻期,说明前一天为卖出股票状态

dp[i][2] = dp[i-1][1];

dp[i][3] 表示第i天使未持有股票状态,那么说明之前未持有,或者前一天是冷冻期

dp[i][3] = max(dp[i-1][3],dp[i-1][2]);
  1. 初始化
    dp[0][0] = -prices[0]
    dp[0][1] = 0
    dp[0][2] = 0
    dp[0][3] = 0
  2. 遍历顺序
    从前向后
  3. 打印dp
class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int len = prices.size();
        if(len <= 1) return 0;
        vector<vector<int>> dp(len,vector<int>(4));
        dp[0][0] = -1*prices[0];
        dp[0][1] = 0;
        dp[0][2] = 0;
        dp[0][3] = 0;

        for(int i=1;i<len;i++)
        {
            dp[i][0] = max(dp[i-1][0],max(dp[i-1][2]-prices[i],dp[i-1][3]-prices[i]));
            dp[i][1] = dp[i-1][0]+prices[i];
            dp[i][2] = dp[i-1][1];
            dp[i][3] = max(dp[i-1][3],dp[i-1][2]);
        }
        //最大利润一定是卖出情况
        int maxval = max(dp[len-1][1],max(dp[len-1][2],dp[len-1][3]));
        return maxval;
    }
};

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

文档讲解:代码随想录
视频讲解: 动态规划来决定最佳时机,这次含手续费!| LeetCode:714.买卖股票的最佳时机含手续费
状态

在买入到卖出期间只需要付一次手续费.

  1. dp数组的含义
    dp[i][0] 表示第i天未持有股票的最大利润
    dp[i][1] 表示第i天持有股票的最大利润
  2. 递推公式
    dp[i][0] 可以是前一天就未持有或者今天卖出(扣除手续费)
dp[i][0] = max(dp[i-1][0],dp[i-1][1]+prices[i]-fee);

dp[i][1] 可以是今天买入不包含手续费或者之前就买入

dp[i][1] = max(dp[i-1][1],dp[i-1][0]-prices[i]);
  1. 初始化
    dp[0][0] = 0;
    dp[0][1] = -prices[0]
  2. 遍历顺序
    从前向后
  3. 打印dp
class Solution {
public:
    int maxProfit(vector<int>& prices, int fee) {
        int len = prices.size();
        if(len <= 1) return 0;
        vector<vector<int>> dp(len,vector<int>(2));
        dp[0][0] = 0;
        dp[0][1] = -prices[0];
        for(int i = 1;i<len;i++)
        {
            dp[i][0] = max(dp[i-1][0],dp[i-1][1]+prices[i]-fee);
            dp[i][1] = max(dp[i-1][1],dp[i-1][0]-prices[i]);
        }
        //因为含手续费
        int maxval = max(dp[len-1][0],dp[len-1][1]);
        return maxval;
    }
};
空心杯电机在美容仪器中的应用:为什么你的洗脸刷动力这么强? 本文深入解析了空心杯电机如何成为高端美容仪器的核心动力源。通过对比传统电机,揭示了其无铁芯、低惯量、零齿槽效应的技术优势,从而实现了强劲动力、极致静音与细腻震动的用户体验。文章详细阐述了空心杯电机在洁面刷、导入仪等美容仪器中的具体应用与选型考量,并指出了开发中驱动匹配、测试等关键实战要点。 阅读详情

相关推荐

从FrSky到TBS:深度解析航模2.4G遥控协议江湖史(附ELRS高频头改装指南)

本文深度解析了航模2.4G遥控协议的技术演进史,从FrSky ACCST的兴衰到TBS Crossfire的崛起,再到开源协议ExpressLRS的革命性突破。文章不仅对比了各协议在延迟、距离与抗干扰能力上的技术内核,还提供了为多协议遥控器加装TBS Crossfire高频头的实战改装指南,帮助玩家打通协议壁垒,提升飞行体验。

weixin_29193259的博客 736

代码随想录day32|122.买卖股票的最佳时机II|55. 跳跃游戏|45.跳跃游戏II|复习day3|Golang

笔记

weixin_42161901的博客 1359

Steam游戏服务器攻防全景解读——如何构建游戏级抗DDoS防御体系?

当检测到TCP/UDP混合攻击时,应触发预设的熔断策略:优先保障游戏大厅服务的UDP 27015端口,临时限制匹配系统的TCP连接数。针对Steam游戏服务器特有的UDP 4380端口,需配置协议合规性检查规则:限制数据包长度不超过128字节,强制校验请求来源IP的真实性。Steam游戏服务器的防护需要平衡安全性与玩家体验,通过协议深度解析、智能流量调度和服务端加固的三维防御体系,可构建游戏行业专属的抗DDoS护城河。答:采用弹性防护方案,基础防护带宽保持50Gbps,遭遇攻击时自动扩展至T级清洗能力。

2501_91486804的博客 1454

零基础代码随想录【Day32】|| 122.买卖股票的最佳时机II,55. 跳跃游戏,45.跳跃游戏II

局部最优推出全局最优,找不出反例,试试贪心!

Andrew______的博客 1220

泛微E8流程监控指南:如何用SQL实时追踪审批节点状态?

本文详细介绍了如何利用SQL实时监控泛微E8系统中的审批流程状态,包括核心数据表结构解析、全链路监控SQL实战以及智能预警机制设计。通过数据库直接查询和状态关联分析,帮助企业快速定位卡顿节点,提升流程效率。适用于需要优化OA系统流程管理的企业IT人员和业务主管。

weixin_30687051的博客 437

【代码随想录算法训练营Day32】122.买卖股票的最佳时机II;55.跳跃游戏;45.跳跃游戏II

如果移动下标等于当前覆盖最大距离下标, 需要再走一步(即 ans++),因为最后一步一定是可以到的终点。从图中可以发现,其实我们需要收集每天的正利润就可以,收集正利润的区间,就是股票买卖的区间,而我们只需要关注最终利润,不需要记录区间。针对于方法一的特殊情况,可以统一处理,即:移动下标只要遇到当前覆盖最远距离的下标,直接步数加一,不考虑是不是终点的情况。从图中可以看出来,就是移动下标达到了当前覆盖的最远距离下标时,步数就要加一,来增加覆盖距离。总结:每次只走一步,求当前数可以覆盖到的范围,取最大的范围。

Tammy2001的博客 1045

抖音无水印视频爬虫实战:从抓包分析到批量下载指定用户作品

抖音作为当前最受欢迎的短视频平台,拥有海量的优质内容。很多用户希望备份自己或他人的作品,但抖音官方并未提供批量下载功能,且直接下载的视频带有平台水印。本文将带领大家从零开始,通过抓包分析、设备模拟、请求签名等核心技术,实现一个完整的抖音无水印视频爬虫系统。本文仅供技术学习和个人备份使用,请勿将爬取的内容用于商业用途或侵犯他人版权,爬取频率请控制合理范围内。目录一、前言二、技术栈概览三、准备工作3.1 环境搭建3.2 抓包分析步骤3.3 关键API发现四、核心技术解密4.1 X-Gorgon签名算法。

2201_76125261的博客 846

代码随想录算法训练营29期|day55 任务以及具体安排

第九章 动态规划part12309.最佳买卖股票时机含冷冻期思路:分为四种状态进行讨论,所以需要二维数组,0代表持有股票的最大金额,1代表保持卖出状态的最大金额,2表示卖出股票的最大金额,3表示冷冻的最大金额,然后进行递推公式的推导,进行dp数组的初始化。714.买卖股票的最佳时机含手续费思路:该题和买卖股票2基本类似,就是需要减去手续费。总结之前我们已经把力扣上股票系列的题目都讲过的,但没有来一篇股票总结,来帮大家高屋建瓴,所以总结篇这就来了!

m0_68520551的博客 1832

ABAP GIT 作用介绍

总结起来,ABAPGit 是一个强大的工具,它通过将 SAP ABAP 项目与 Git 版本控制系统集成,大大提高了代码管理的效率和团队协作的质量。在 ABAPGit 出现之前,ABAP 代码的版本控制和团队之间的协作主要依赖于手工操作或者是 SAP 自带的版本控制工具,这些方式效率低下,且难以实现高效的代码管理。使用 ABAPGit,SAP 项目团队不仅可以提高代码管理的效率和质量,还可以通过 Git 的强大功能实现高效的团队协作和代码审查。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 839

prplOS介绍

介绍prplOS是什么,特性、框架、编译等。

四儿家的小祖宗的博客 2120

Day55 股票买卖(下)

股票end

m0_57236377的博客 116

微信小程序 - 超详细小程序接入腾讯地图的完整流程,提供地图显示、IP 属地定位、地理位置名称、获取经纬度等超多功能示例(可一键复制并运行的功能源代码,详细的注释及常见问题汇总)小白直接上手!

微信小程序腾讯地图怎么接入,小程序项目中使用腾讯地图sdk,小程序中使用腾讯地图,微信小程序集成腾讯地图功能,微信小程序通过ip获取其地址、经纬度、详细地址,小程序使用腾讯地图跨域解决方法,微信小程序引入腾讯地图详细教程,原生小程序引入腾讯地图,微信小程序如何植入腾讯地图,微信小程序腾讯地图配置及使用详细教程,小程序植入腾讯地图SDK,微信小程序项目怎么用腾讯地图,微信小程序IP属地定位,获取当前用户位置名称,微信小程序如何使用腾讯地图获取用户的定位位置,在小程序中使用腾讯地图,实现定位,距离计算,实时搜索

🏆 前端领域优质创作者 8803

代码随想录系统性一刷总结

指针思想很重要day01 二分查找+移除元素day02 数组平方+长度最小子数组+螺旋矩阵II。

qq_44072579的博客 1048

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

代码随想录算法训练营Day 32| 贪心算法 part02 | 122.买卖股票的最佳时机II、55. 跳跃游戏 、45.跳跃游戏II

【代码】代码随想录算法训练营Day 32| 贪心算法 part02 | 122.买卖股票的最佳时机II、55. 跳跃游戏 、45.跳跃游戏II。

m0_51759998的博客 419

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

代码随想录刷题day32 122.买卖股票的最佳时机II;55. 跳跃游戏;45.跳跃游戏II

代码随想录刷题day32

weixin_43127049的博客 885

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

代码随想录算法训练营Day24 | Leetcode 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II、1005.K次取反后最大化的数组和

每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。判断你是否能够到达最后一个下标,如果可以,返回 true;给定一个长度为 n 的 0 索引整数数组 nums。在每一天,你可以决定是否购买和/或出售股票。数组中的每个元素代表你在该位置可以跳跃的最大长度。给你一个非负整数数组 nums ,你最初位于数组的。生成的测试用例可以到达 nums[n - 1]。说明: 假设你总是可以到达数组的最后一个位置。

叽里呱啦大王的博客 1071

代码随想录刷题day28丨122.买卖股票的最佳时机II, 55. 跳跃游戏, 45.跳跃游戏II, 1005.K次取反后最大化的数组和

文档讲解:https://programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII.html解题思路:贪心如何分解呢?假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0]。

m0_75195038的博客 804

代码随想录算法训练营day28

给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])。每天的利润序列:(prices[i] - prices[i - 1]).....(prices[1] - prices[0])你的目标是使用最少的跳跃次数到达数组的最后一个位置。判断你是否能够到达最后一个位置。

Icewolf273的博客 1013

代码随想录-Day32

这段代码提供了一个简洁的贪心策略来解决股票交易中的最大利润问题,特别适用于只允许进行一次买入和一次卖出的情况。通过逐天检查能否获得正利润,并立即获取这些利润,从而避免了复杂的动态规划状态维护,降低了算法的时间复杂度至O(n),其中n为股票价格数组的长度。这段代码实现了一个有效且节省空间的解决方案来判断在给定条件下能否完成跳跃游戏。其核心思想是动态维护一个不断扩大的“覆盖范围”,并利用这个范围来决定是否需要继续探索后面的元素,避免了冗余的循环迭代,提高了效率。

ToBewhatyouwannabe的博客 1243

【Day55】代码随想录之动态规划_买卖股票含冷冻期和手续费

加入冷冻期的概念,如果当前卖出了会有一天的冷冻期,这一天不能买入股票,所以节点的状态增加为 持有 当场卖出 冷冻期 和 卖出状态 四种。卖出状态是说明可以持有股票了。手续费什么是否付呢?需要卖出的时候就要付了。每个节点的状态有两个,持有和不持有手里的钱。

weixin_46275441的博客 510

代码随想录算法训练营|day32

从i位置出发,dp[i] = nums[i] + i;不从i位置出发dp[i] = dp[i - 1]当前位置为i时,下一跳的可扩展边界为j,如果下一跳位置从未到达过,dp[j]=dp[i]+1。(1)贪心:若当前位置是能走到的最远位置离,count++,更新下一个能走到的最远位置。若下一跳能跳到的最远位置为当前位置,不能往前走了。dp[i]:[0,i]范围内任意位置,下一跳可以跳到的最远位置。若数组长度大于1,但是nums[0] == 0,无法继续前进;的最小次数 + 1,当前位置的最小跳跃次数)

weixin_43785190的博客 640

代码随想录训练营day35|122.买卖股票的最佳时机II、55. 跳跃游戏、 45.跳跃游戏II

122.买卖股票的最佳时机II(中等122.买卖股票的最佳时机II(中等。

m0_63071531的博客 193

代码随想录day32 | 贪心算法P2 | ● 122 ● 55 ● 45

贪心算法解决leetcode● 122 ● 55 ● 45 买卖股票利润分解、跳跃游戏求最大覆盖范围

FhilMs的博客 900

代码随想录Day32|122.买卖股票的最佳时机II、55.跳跃游戏、45.跳跃游戏II

122.买卖股票的最佳时机II、55.跳跃游戏、45.跳跃游戏II

weixin_46620779的博客 1231

代码随想录刷题笔记 DAY 31 | 买卖股票的最佳时机 II No.122 | 跳跃游戏 No.55 | 跳跃游戏 II No.45

初次见到这个题的时候大家想的可能是选择价格最低的买入再选择价格最高的卖出,但显然是不合理的,因为可以有 **多次买入和卖出** 来收取多次的利润。 但其实利润是可以分解的,先选择价格低的时候买入,价格高的时候直接卖出。

kkq的博客 1372
上一篇: 代码随想录Day54 | 股票买卖
下一篇: 代码随想录Day56 | 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组
sRiddle
博客等级 码龄7年 528粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值