news 2026/4/16 12:42:51

力扣376 摆动序列 java实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣376 摆动序列 java实现

376.摆动序列

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

  • 例如,[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)时间复杂度完成此题?

该题只需要统计出两数之间的差值正负变化次数,即为摆动序列的最长子序列数。

public static void main(String[] args) { // 测试用 int[] nums = {1,17,5,10,13,15,10,5,16,8}; System.out.println(wiggleMaxLength(nums)); } public static int wiggleMaxLength(int[] nums) { if (nums.length < 2){ return nums.length; } int res = 1; boolean big = true; // 代表下一个差值可以是大于0的 boolean small = true; // 代表下一个差值可以是小于0的 for (int i = 1; i < nums.length; i++) { if (nums[i] - nums[i - 1] > 0 && big){ big = false; small = true; res++; }else if (nums[i] - nums[i - 1] < 0 && small){ big = true; small = false; res++; } } return res; }

以上为记录分享用,代码较差请见谅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:23:42

2025本科生必备!10个降AI率工具测评榜单

2025本科生必备&#xff01;10个降AI率工具测评榜单 2025年本科生降AI率工具测评&#xff1a;为何需要这份榜单&#xff1f; 近年来&#xff0c;随着学术审查机制的不断升级&#xff0c;AI生成内容&#xff08;AIGC&#xff09;检测技术愈发精准。许多本科生在撰写论文或报告时…

作者头像 李华
网站建设 2026/4/16 9:25:15

先是有了快餐,现在又有了预制菜,将来还会怎么变化?

镜子里的回音——灵遁者当你要离开我时不要向我索取答案你去问问镜子它会替我回答一切问题419、我的老婆——灵遁者我的老婆她只是一个女人除了是一个女人以外她还像一个男人420、风的记忆——灵遁者 信息和关系才是本质而风的记忆先于存在任谁也无法追寻——421、预制菜——灵…

作者头像 李华
网站建设 2026/4/16 9:25:08

一些Redis知识点记录

Redis 数据存放在内存中&#xff0c;需要配置持久化将数据保存在磁盘上&#xff0c;redis提供两种方式进行持久化&#xff1a; 1、RDB持久化&#xff08;原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化&#xff09; 在指定的时间间隔内将内存中的数据集快照…

作者头像 李华
网站建设 2026/4/16 9:24:53

Open-AutoGLM模型部署避坑指南(90%新手都会犯的5个错误)

第一章&#xff1a;Open-AutoGLM模型部署避坑指南概述 在将Open-AutoGLM这类大型语言模型投入生产环境时&#xff0c;开发者常面临性能瓶颈、资源浪费与服务不稳定等问题。本章聚焦于实际部署过程中高频出现的陷阱&#xff0c;并提供可落地的解决方案&#xff0c;帮助团队高效构…

作者头像 李华
网站建设 2026/4/16 2:01:22

Open-AutoGLM智能体模型部署难题全解,3天快速上手指南

第一章&#xff1a;Open-AutoGLM智能体模型部署难题全解&#xff0c;3天快速上手指南在当前大模型应用爆发的背景下&#xff0c;Open-AutoGLM作为一款轻量级、高可扩展的智能体模型&#xff0c;正被广泛应用于自动化任务编排与自然语言理解场景。然而&#xff0c;其部署过程常因…

作者头像 李华