leetcode 376 摆动序列

news/2024/10/18 1:30:59/
题目

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

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

相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。
子序列 可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。

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

示例

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

解析

这道题可以用贪心也可以用动态规划,先只说贪心;
假设有三个数,前两个差值大于0,则后两个的差值要小于0,才会在结果中++;
由于仅含一个元素也为摆动序列,则最开始的ans直接赋值为1,

func wiggleMaxLength(nums []int) int {n := len(nums)if n < 2 {return n //根据题目,一个也是}ans := 1prevDiff := nums[1] - nums[0]if prevDiff != 0 {ans = 2}for i := 2; i < n; i++ {diff := nums[i] - nums[i-1]if diff > 0 && prevDiff <= 0 || diff < 0 && prevDiff >= 0 {ans++prevDiff = diff}}return ans
}

http://www.ppmy.cn/news/772.html

相关文章

SAP ABAP——数据类型(三)【TYPE-POOL和INCLUDE嵌套定义类型】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

AI 作画领域中的“神笔马良”是怎样炼成的?

本文由行者AI携手亚马逊云科技共同推出 刷爆朋友圈的 AIGC 是什么&#xff1f; AI Generated Content (AIGC&#xff0c;利用人工智能技术来生成内容)&#xff0c;是继专业生产内容&#xff08;PGC, Professional-generated Content&#xff09;、用户生产内容&#xff08;UGC…

构建curl 静态库 vs2012win7可用

https://www.youtube.com/watch?appdesktop&vq_mXVZ6VJs4

线程的状态

目录 1.线程的几种状态 2.TERMINATED状态 3.获取线程的状态 4.线程存在的意义 1.线程的几种状态 (1) NEW : 线程对象已经存在,但是线程没有启动 (2) RUNNABLE : 线程正在CPU上运行,或者可以在CPU上运行(就绪状态) (3) TIME_WAITING : 线程当前处于堵塞状态.(wait/join) …

四嗪-五聚乙二醇-羧基,1682653-79-7,Tetrazine-PEG5-COOH 水溶性和稳定性怎么样?

●中文名&#xff1a;四嗪-五聚乙二醇-羧基 ●英文&#xff1a;Tetrazine-PEG5-COOH ●外观以及性质&#xff1a;Tetrazine-PEG5-COOH为红色固体&#xff0c;四嗪目前被广泛应用于蛋白质特定位点功能阐释、亚细胞结构选择性标记。四嗪PEG衍生物用于与 TCO&#xff08;反式环辛烯…

网页大作业代码自取

&#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计&#x1f469;‍&#x1f393;,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等&#xff0c;用的最多的还是DW&#xff0c;当然不同软件写出的…

详解设计模式:享元模式

享元模式&#xff08;Flyweight Pattern&#xff09;&#xff0c;是对象池的一种体现&#xff0c;也是 GoF 的 23 种设计模式中的一种结构型设计模式。 享元模式 主要用于减少创建对象的数量&#xff0c;以减少内存占用和提高性能。它提供了减少对象数量从而改善应用所需的对象…

「PAT乙级真题解析」Basic Level 1101 B是A的多少倍 (问题分析+完整步骤+伪代码描述+提交通过代码)

乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。 PAT (Basic Level) Practice 1101 B是A的多少倍 问题分析 题设明确要求按照其给定的步骤变换给定的正整数, 然后输出变换后的正整数是输入正整数的多少倍。 所…