【LeetCode: 376. 摆动序列 + 动态规划】

手把手教你用RoboTwin训练RDT模型:从环境配置到实战微调(避坑指南) 本文提供了一份详尽的避坑指南,手把手教你如何在RoboTwin开源仿真环境中,从零开始配置环境、采集数据并完成RDT视觉语言动作模型的实战微调。文章涵盖了环境搭建、数据流水线构建、模型配置与训练等关键步骤,旨在帮助研究者和开发者高效利用仿真数据,低成本探索具身智能应用。 阅读详情

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,优快云-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🚩 题目链接

⛲ 题目描述

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。

  • 例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。

  • 相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。

子序列 可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。

给你一个整数数组 nums ,返回 nums 中作为 摆动序列 的 最长子序列的长度 。

示例 1:

输入:nums = [1,7,4,9,2,5]
输出:6
解释:整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3) 。
示例 2:

输入:nums = [1,17,5,10,13,15,10,5,16,8]
输出:7
解释:这个序列包含几个长度为 7 摆动序列。
其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8) 。
示例 3:

输入:nums = [1,2,3,4,5,6,7,8,9]
输出:2

提示:

1 <= nums.length <= 1000
0 <= nums[i] <= 1000

进阶:你能否用 O(n) 时间复杂度完成此题?

🌟 求解思路&实现代码&运行结果


⚡ 动态规划

🥦 求解思路
  1. 分别计算上升趋势 up 和下降趋势 down 的最大长度
  • nums[i] > nums[i-1] 时, 上升趋势等于之前下降趋势的最大长度加一
  • nums[i] < nums[i-1] 时, 下降趋势等于之前上升趋势的最大长度加一
  1. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
class Solution {
    public int wiggleMaxLength(int[] nums) {
        int down = 1, up = 1;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] > nums[i - 1])
                up = down + 1;
            else if (nums[i] < nums[i - 1])
                down = up + 1;
        }
        return Math.max(down, up);
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

从贝叶斯网络到结构因果模型:因果推理在可解释AI中的实践 在机器学习和数据分析领域,理解变量间的因果关系而不仅仅是统计关联,是构建可信赖、可解释系统的关键。概率图模型,特别是贝叶斯网络,通过有向无环图和条件概率表,能够高效地编码和推理变量间的条件依赖关系,广泛应用于医疗诊断、风险评估等场景。然而,贝叶斯网络主要刻画的是“是什么”的关联,难以回答“如果…会怎样”的因果问题。为了进行因果推断,需要引入结构因果模型和do-演算,它们通过定义结构方程和模拟干预操作,能够区分混杂效应,估计处理变量对结果变量的净因果影响。这一套方法论对于可解释人工智能至关重要,它能生成反事实 阅读详情

相关推荐

AI辅助编程实战指南:从提示工程到开发环境搭建

大型语言模型(LLM)作为现代人工智能的核心技术,通过自然语言理解和生成能力,正在深刻改变软件开发范式。其原理基于海量代码和文本数据的预训练,能够根据上下文生成符合逻辑的代码片段和解决方案。这一技术的核心价值在于将开发者从繁琐的语法和基础逻辑编写中解放出来,提升开发效率与代码质量。在实际工程应用中,AI辅助编程已广泛应用于日常编码、代码调试、文档生成和系统设计等场景。其中,提示工程(Prompt Engineering)和检索增强生成(RAG)是两项关键技术:前者通过结构化、角色化的指令设计,引导AI生成更

weixin_26775679的博客 620

《LeetCode》—— 摆动序列

摆动序列题目的讲解

m0_56069910的博客 1338

STM32H750_QSPI_Flash_Configuration_With_CubeMX

本文详细介绍了如何使用STM32CubeMX配置STM32H750的QSPI Flash接口,包括硬件连接、CubeMX参数设置、代码生成与初始化流程优化。通过实战示例展示了Flash ID读取、页编程与数据读取等常用操作,并提供了调试技巧与性能优化建议,帮助开发者高效实现高速外部存储扩展。

weixin_29176179的博客 272

摇摆序列(LeetCode 376)

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。 给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)元素来

Orange1024 989

单卡也能玩转Qwen2.5-VL微调!3090实测Grounding任务调参技巧大全

本文详细介绍了如何在单张RTX 3090显卡上,通过梯度累积、BF16混合精度训练、梯度检查点等关键技术,成功微调Qwen2.5-VL多模态大模型以完成Grounding视觉定位任务。文章提供了从数据处理、参数配置到训练监控的完整实战调参技巧,为资源有限的开发者提供了可行的解决方案。

weixin_29098117的博客 423

AI 自动生成商业计划书:AIGC 如何助力创业者?

在创业的早期阶段,商业计划书(Business Plan)是至关重要的。它不仅用于吸引投资者、明确发展路径,还能帮助团队对业务模式、市场定位和财务预测有清晰认知。然而,撰写一份高质量的商业计划书往往需要投入大量时间和精力。如今,AIGC(AI Generated Content,人工智能生成内容)技术正在改变这一现状。借助 AIGC,创业者可以更快速、高效地创建商业计划书,并通过 AI 进行优化和数据分析。

2401_82808034的博客 3779

摆动序列 动态规划 python

摆动序列 动态规划 python

weixin_52596361的博客 848

Modem2G/3G/4G/5G:RFFE Driver(射频前端驱动):高通平台GRFC配置方法

文 | GentlemanTsao 文章目录前言1.什么是GRFC2.GRFC的配置流程概览3.msm_sig_info的配置与分析msm_sig_info Table位置:msm_sig_info Table示例:Table元素解读:rfc_msm_sig_info_type结构体signal typemsm_gpio |grfc_num:GPIO到GRFC的映射output_typefunction_select4._sig_cfg的配置与分析_sig_cfg table位置:_sig_cfg tabl

GentelmanTsao的博客 7311

摆动序列

题目 思路 首先理解一下什么是摆动序列,摆动序列就是两两之间的差是正数和负数交替,那么首先来分析一下该题的边界问题:第一个边界就是单个元素也属于摆动序列,第二个边界就是一个摆动序列只有两个元素(意味着他们的差为正数或者负数) 那么我们的思路是什么呢,该题的标签为贪心算法的范畴,那我们如何从贪心算法入手呢? 参考思路一 既然要求最长摆动序列长度,那么我们就按照摆动序列的定义来,相比较上一次的差为正...

clearLB的博客 2020

Android 13.0 USB 麦克风音频采集优化:解决延时、杂音和无声问题

摘要:本文针对Android智能会议设备中USB麦克风存在的三大问题(录音延时、概率性杂音和无声)进行了深入分析和优化。通过预填充静音帧降低90%启动延时,分离采集/播放互斥锁消除杂音,采用持久化配置解决无声问题,并新增状态通知机制提升用户体验。优化后测试显示:录音延时从1200-2000ms降至100-200ms,故障率降至0%,CPU占用降低30%。该方案适用于各类USB音频设备和视频会议系统,为低延时音频采集提供了可靠解决方案。

ip0417的博客 228

Claude Code 错误解决方案 API Error: 前缀通用错误

本文分析了Claude Code与Anthropic API通信时出现的通用错误处理问题。当API返回未分类错误时,系统会直接显示"API Error: "前缀的原始错误信息。通过错误链路追踪发现,这是由于未匹配特定错误类型时触发了通用兜底处理逻辑。文章提供了三种解决方案:查看具体错误内容、启用调试日志以及提交问题反馈,并建议用户关注错误码、使用/compact命令处理上下文超限问题。最后强调这些未分类错误是预期行为,用户应通过错误消息中的线索自行排查或反馈开发者。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1342

leetcode 376. 摆动序列(三种解法)

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差...

计算机科学与技术专业学生的成长之路 1275

完整的 Python 数据分析案例:新能源汽车续航里程预测

随着新能源汽车的普及,续航里程成为消费者关注的重要指标。准确预测新能源汽车的续航里程,有助于车企优化电池管理系统、提升车辆性能,也能帮助消费者合理规划出行。本案例将基于新能源汽车的各项参数,如电池容量、行驶速度、环境温度等,构建续航里程预测模型。通过以上改进,可以提高数据处理的准确性、模型的性能和可视化的效果。

daqsdfas的博客 1587

LeetCode:376 摆动序列 贪心/动态规划

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差...

AKGWSB 's blog 292

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

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

leetcode376( 摆动序列:动态规划)

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。 给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)元素来

CY2333333的博客 199

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

「力扣」第 376 题:摆动序列(动态规划)

第 1 步:定义状态 思路:子序列问题的模板问题是“最长上升子序列”,解这个问题的经验告诉我们:结尾的那个数字很重要。注意:最长子序列,不要求连续。 dp[i][0]:表示以 i 结尾的数字是严格上升的子序列的长度; dp[i][1]:表示以 i 结尾的数字是严格下降的子序列的长度。 第 2 步:状态转移方程 dp[i][0] = dp[i - 1][1] + 1, if nums[i] - nu...

李威威的博客 914

leetcode 376 摆动序列

相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列。解释:整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3)输入:nums = [1,7,4,9,2,5]

谜底的博客 432

贪心 | 3 376. 摆动序列*

本文记录的是刷题过程中的重要概念和笔记。如有侵权,请联系删除。

weixin_48315360的博客 77

【算法刷题day31】Leetcode:455. 分发饼干、376. 摆动序列、53. 最大子数组和

题目:376. 摆动序列解析:代码随想录解析暂无暂无455. 分发饼干代码随想录解析376. 摆动序列代码随想录解析53. 最大子数组和代码随想录解析。

qq_45022758的博客 546

Day 3:376 摆动序列

【代码】Day 3:376 摆动序列。

qewa132的博客 442

java-代码随想录第27天|455.分发饼干、 376.摆动序列、 253.最大子数组和

摘要:本文介绍了三个贪心算法经典问题。455题通过排序饼干和孩子胃口,用最小饼干满足最小胃口来最大化满足人数。376题通过检测相邻元素的差值正负交替来计算最长摆动子序列长度。53题通过维护当前子数组和,当和为负时重置起点,来寻找最大子数组和。这些解法都体现了贪心算法的"局部最优推出全局最优"思想,展示了不同场景下贪心策略的具体应用。

qq_57465625的博客 430

贪心算法-摆动序列

nums。

池央的博客 525

算法训练营第31天|LeetCode 455.分发饼干 376.摆动序列 53.最大子序列和

先将一个节点和两个节点的特殊情况列举出来,之后分三种情况1.有摆动2.有摆动但中间是平的3.持续增,但中间为平的三种。用result记录当前最大结果值,如果前面的结果值小于零,则起不到递增的作用,则不要前面的,将前面的结果赋值为0.从孩子小到大,找到最小能满足孩子的饼干,之后看最多能满足几个孩子。

qq_53125539的博客 312

LeetCode动态规划专题:第十八天

Leetcode300. 最长递增子序列 思路:动态规划 O(N2)O(N^2)O(N2),以右指针为端点的 class Solution { public: int lengthOfLIS(vector<int>& nums) { vector<int> f(nums.size(), 1); int maxn = 1; for (int i = 0; i < nums.size(); i ++ ) {

释然的成长之路 183

LeetCode算法训练-贪心算法 455.分发饼干 376. 摆动序列 53. 最大子序和

欢迎关注个人公众号:爱喝可可牛奶 LeetCode算法训练-贪心算法 455.分发饼干 376. 摆动序列 53. 最大子序和 前置知识 贪心算法核心是找局部最优解,通过局部最优推导出全局最优 LeetCode 455. 分发饼干 分析 要求:把饼干分给孩子,并返回分了多少个孩子 局部最优:小饼干分给胃口小的 代码 class Solution { public int findContentChildren(int[] g, int[] s) { Arrays.sort(g);

分享知识,记录学习 220

贪心算法 | 455. 分发饼干 376. 摆动序列 53. 最大子数组和

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。

Lchiyu的博客 349

【贪心算法part01】| 455.分发饼干、376.摆动序列、53.最大子序和

代码随想录算法训练营Day31

m0_61801103的博客 601
上一篇: 【LeetCode: 100. 相同的树 + 二叉树 + 递归】
下一篇: 【LeetCode: 112. 路径总和 + 二叉树 + 递归】
硕风和炜
硕风和炜 优质创作者: Java技术领域 优质创作者: Java技术领域
博客等级 码龄7年 2万+粉丝 1024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值