Leetcode 刷题笔记1 动态规划part08

Day41 动态规划part08 1.这道题和上一题的最大区别就是dp[i][0] = Math.max(dp[i-1][0], dp[i-1][1] - prices[i]);分析持有股票的情况,如果之前没有持有股票,然后再买入股票,这种情况需要考虑因为之前的买卖操作,此时手头的现金可能就不再是0了,可能会有之前买卖的利润即:dp[i - 1][1],所以dp[i - 1][1] - prices[i]。对dp[i][0]和dp[i][1]的更新就像121题,然后对dp[i][2]和dp[i][3]的更新就是122题。 阅读详情

leetcode 121 买卖股票的最佳时机

把股票问题理解为不卖和卖的两种情况,就只需要考虑两个变量即可

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        length = len(prices)
        if length == 0:
            return 0
        dp = [[0] * 2 for _ in range(length)]
        dp[0][0] = -prices[0]
        dp[0][1] = 0
        for i in range(1, length):
            dp[i][0] = max(dp[i - 1][0], -prices[i])
            dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0])
        return dp[-1][1]

leetcode 122 买卖股票的最佳时机 ||

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        result = 0
        for i in range(1, len(prices)):
            profit = prices[i] - prices[i - 1]
            result += max(profit, 0)
        return result

上题代码改编:

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        length = len(prices)
        dp = [[0] * 2 for _ in range(length)]
        dp[0][0] = -prices[0]
        dp[0][1] = 0
        for i in range(1, length):
            dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i])
            dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i])
        return dp[-1][1]

leetcode 123 买卖股票的最佳时机 |||

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        if len(prices) == 0:
            return 0
        length = len(prices)
        dp = [0] * 5
        dp[1] = dp[3] = float('-inf')
        for i in range(length):
            dp[1] = max(dp[1], dp[0] - prices[i])
            dp[2] = max(dp[2], dp[1] + prices[i])
            dp[3] = max(dp[3], dp[2] - prices[i])
            dp[4] = max(dp[4], dp[3] + prices[i])
        return dp[4]

Speedtree学习笔记(案例)——拥有多种材质的植物如何导入使用(以草为例) 注:Speedtree无论保存还是导入模型其存储路径不可有中文。 第一步拆分草的模型 根据所需的材质去拆分(例:假若草的果实,茎秆和叶子是不同的材质那么就需拆分为三份;假若画的全部颜色及材质一样就没有必要去拆分模型) 第二步导入草的模型 在Mesh面板中依次导入草的模型——Do nothing additional right now 第三步扩大草的生长区域范围(可省略)... 阅读详情

相关推荐

深入解析FastDDS:SHM与DATA-SHARING传输层的性能对比与实现细节

本文深入对比了FastDDS中SHM与DATA-SHARING两种传输层的实现机制与性能差异。SHM采用端口化共享内存模型,存在两次数据拷贝;而DATA-SHARING通过共享历史实现真正的零拷贝,大幅降低延迟与CPU占用。文章结合实战测试数据,为机器人、自动驾驶等高实时性场景提供了关键的性能优化选型与配置指南。

weixin_28358083的博客 231

Leetcode 刷题笔记1 动态规划part06

由于本题所求为最少零钱数所以递推公式中应该为dp[ j ] = min(dp[ j ], dp[ j - coin] + 1)

pinglejun的博客 718

AES攻击方法 :差分密码分析 boomerang attack飞去来器攻击

AES具有123比特的分组长度,三种可选的密钥长度(128,192,256) AES是一个迭代型密码,轮数依赖于密钥长度。如果密钥长度为128比特,则轮数为10;如果密钥长度为192比特,则轮数为12;如果密钥长度为256比特,则轮数为14; 混淆(Confusion) 混淆是为了让密钥与密文的统计信息之间的关系变得复杂,从而增加通过统计方法进行攻击的难度。混淆可以通过各种代换算法实现,如S盒、乘法(加)与异或等运算组合,为非线性部件。 扩散(Diffusion) 扩散是为了让明文的单个比特影像到

m0_67105022的博客 3491

leetcode刷题-动态规划part02

=注意:==数组初始化要这么写:dp = [[0] * n for _ in range(m)]10 = 2 × 8 (10的状态依赖2和8的状态)8 = 2 + 6 (8的状态依赖2和6的状态)若使用图论中的深度搜索、广度搜索,提交超时。在不同路径题目中添加了障碍。相当于爬楼梯题目的消费版。example:拆10。

emmmmXxxy的博客 792

Cy7c68013A速度测试教程

手里有一个cypress的CY7C68013A模块,一直没空玩。今天便测一下,这个模块的USB2.0速率。 1、开发工具下载 在cypress下载如下开发工具包(开发工具包下载地址) 2、驱动安装 一路Next即可 3、下载CyControl.exe 4、驱动安装 模块连接电脑,此时由于没有安装驱动,在设备管理器中显示未知设备...

LV9586的博客 5893

用AI免费制作30分钟电影:完整工作流与实操解析

AI视频生成技术正大幅降低影视创作门槛,但真正制作一部完整电影并非一键生成,而是涉及剧本、分镜、画面、配音、剪辑的复杂流水线。理解其基本原理,是将文本转化为连续视觉叙事的关键。对于创作者而言,掌握角色一致性控制、素材批量管理、免费额度合理分配等技术价值,能有效避免生成结果崩坏与资源浪费。该能力可广泛应用于短视频创作、独立电影预演、教学演示等场景。本文以30分钟AI电影制作为例,拆解从工具选择到成片输出的全流程,重点分析免费方案下的时间与积分成本,以及最容易翻车的环节,并给出基于实践验证的排查与优化策略。

weixin_29056865的博客 326

Leetcode 刷题笔记1 动态规划part02

关于路径的初始化要考虑清楚。

pinglejun的博客 193

Sentaurus TCAD建模:宽温区n型FinFET模型校准与低温仿真分析

本文基于Sentaurus TCAD平台,建立了n型FinFET的宽温区(233K-393K)仿真模型,解决了低温(73K-193K)仿真失效问题。研究对比了Sprocess工艺仿真与SDE几何建模两种方法,分析了载流子冻析效应、不完全电离和迁移率退化等低温物理机制。通过优化模型参数,实现了在233K、313K和393K条件下仿真误差小于10%,并建立了符合物理趋势的低温外推模型。研究提供了完整的Sentaurus TCAD代码实现,包括器件结构定义、物理模型配置和温度相关参数校准,为宽温区FinFET仿真

huanghm88的专栏 264

Leetcode 刷题笔记1 动态规划part11

动态规划

pinglejun的博客 319

华为OD机考真题 新系统 - 小菊的寻宝之旅(Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【小菊的寻宝之旅】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小菊的寻宝之旅】多语言题解。

qq_45776114的博客 620

18、动态系统响应分析

本文系统地介绍了动态系统响应的分析方法,涵盖传递函数建模、特殊输入下的响应特性(如脉冲和阶跃响应)、终值与初值定理的应用、系统直流增益的计算,并深入探讨了一阶和二阶系统的时域特性。通过实例分析与MATLAB仿真,展示了不同参数对系统行为的影响。文章还总结了系统响应在控制设计与故障诊断中的实际应用,并展望了多变量、非线性及实时响应分析的未来研究方向。配合流程图,提供了清晰的系统分析与设计路径。

kite3的博客 141

Leetcode 刷题笔记1 动态规划part13

【代码】Leetcode 刷题笔记1 动态规划part13。

pinglejun的博客 261

【软考高级系统架构论文】论微服务架构及其应用

本文围绕“论微服务架构及其应用”展开论述。首先概要介绍了本人参与的某公司线上电子商务平台项目,在其中担任系统架构设计师。接着分析了微服务架构相较于单块架构的特点,如模块化与组件化、技术栈多样性、独立部署与扩展、高度容错与可用性等。最后结合项目阐述了软件架构对微服务模式的采用情况,以及实施过程中遇到的问题及解决方案,如服务划分粒度、数据一致性、监控与故障排查等问题,并给出了相应解决办法。

qq837993702的博客 225

Leetcode 刷题笔记1 动态规划part10

递推公式:dp[i] = max(dp[i], dp[j] + 1)

pinglejun的博客 233

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Leetcode刷题笔记1 动态规划part09

【代码】Leetcode刷题笔记1 动态规划part09。

pinglejun的博客 240

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Leetcode 刷题笔记1 动态规划part07

一轮循环,确定递归公式即可ac。

pinglejun的博客 349

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Leetcode 刷题笔记1 动态规划part04

问题转化, 把石头问题转化为背包问题,在target容量范围内所能装的最大石头重量。

pinglejun的博客 269

Leetcode刷题笔记1 动态规划part12

在子序列问题中,遇到不匹配的情况时,哪个子序列长,哪个子序列让步,如果不知道哪个长就直接max(dp[i - 1][j], dp[i][j - 1])

pinglejun的博客 281

Leetcode 刷题笔记1 动态规划part05

开始完全背包不同于01背包,完全背包的特色在于元素可以重复拿取, 因此在递归公式和遍历顺序上都有些许不同。

pinglejun的博客 291

leetcode刷题-动态规划part01

楼梯一共有1阶台阶:1种;三阶台阶:3种(1阶+2阶)递推关系:依赖于前两种状态,f(n)=f(n-1)+f(n-2)斐波那契数: 1 1 2 3 5 8。相当于爬楼梯题目的消费版。其实就是 斐波那契数。

emmmmXxxy的博客 517

Leetcode 刷题笔记1 动态规划part01

难点在于分析dp数组的递推公式。

pinglejun的博客 236

《趣学算法(第2版)》读书笔记 Part 1 :如何高效学习算法

直播流水账不能水,是小白最后的倔强。 这竟然是我在 优快云 写的第一篇博文...(战战兢兢,如履薄冰)

浪里个狼游记 1559

算法训练营DAY34 第九章 动态规划part02

保证推导dp[i][j]的时候,dp[i - 1][j] 和 dp[i][j - 1]一定是有数值的。保证推导dp[i][j]的时候,dp[i - 1][j] 和 dp[i][j - 1]一定是有数值的。所以递推公式:dp[i] += dp[j - 1] * dp[i - j];每个点来自他的上方或者左方,所以路径数量等于上方位置的数量加左方位置的数量。每个点来自他的上方或者左方,所以路径数量等于上方位置的数量加左方位置的数量。j-1 为j为头结点左子树节点数量,i-j 为以j为头结点右子树节点数量。

2401_89133587的博客 2700

求职刷题力扣 DAY38动态规划 part04

有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块 石头。返回此石头 最小的可能重量。如果没有石头剩下,就返回 0。

qq_44486787的博客 1255

leetcode 刷题day39动态规划Part08 买卖股票(121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III)

思路:这个题可以用贪心的方法来做,找到最左最小的值,取最右最大值,找到最大的利润。考虑动态规划动规五部曲分析如下:1、确定dp数组以及下标的含义dp[i][0] 表示第i天持有股票所得最多现金,一开始现金是0,那么加入第i天买入股票现金就是 -prices[i], 是一个负数。dp[i][1] 表示第i天不持有股票所得最多现金2、确定递推公式如果第i天持有股票即dp[i][0],那么可以由两个状态推出来。

m0_51007517的博客 1567

蓝桥杯备考-刷题之路-动态规划算法(DP算法)Part1

蓝桥杯-动态规划应着重弄懂的知识 Part1

m0_37805091的博客 1188
上一篇: Leetcode 刷题笔记1 动态规划part07
下一篇: Leetcode刷题笔记1 动态规划part09
平乐君
博客等级 码龄5年 65粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值