news 2026/6/9 9:00:15

力扣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/6/8 14:15:42

探索色彩的奥秘:从红到黄的RGB迭代器

引言 在计算机图形学和颜色理论中,RGB颜色模型是最常见的颜色表示方法之一。最近,我看到有人提出了一个有趣的问题:如何用Rust编程语言实现一个从红色(255, 0, 0)到黄色(255, 255, 0)再到其他颜色的RGB迭代器?这个问题激发了我探索如何通过编程来模拟颜色变化的兴趣。…

作者头像 李华
网站建设 2026/6/1 20:28:55

Open-AutoGLM关键技术全拆解(20年架构师亲授)

第一章&#xff1a;Open-AutoGLM原理框架Open-AutoGLM 是一个面向自动化自然语言理解与生成任务的开源框架&#xff0c;基于 GLM&#xff08;General Language Model&#xff09;架构进行扩展&#xff0c;融合了指令微调、思维链推理与多任务自适应机制。该框架通过动态路由机制…

作者头像 李华
网站建设 2026/5/30 14:17:15

还在手动调试Prompt?Open-AutoGLM自动化配置全攻略,效率提升8倍

第一章&#xff1a;还在手动调试Prompt&#xff1f;是时候告别低效时代在人工智能快速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为开发和业务流程中的核心工具。然而&#xff0c;许多开发者仍停留在手动编写与调试 Prompt 的阶段&#xff0c;反复尝试不…

作者头像 李华
网站建设 2026/5/31 2:04:05

810-072687-003传感器模块

810-072687-003 是一款工业用传感器模块&#xff0c;主要用于监测和采集各种物理参数。下面是详细介绍&#xff1a;模块概述810-072687-003传感器模块属于高精度工业传感器系列&#xff0c;适用于实时数据采集和自动化控制系统。模块体积小、集成度高&#xff0c;便于与控制系统…

作者头像 李华
网站建设 2026/5/26 14:18:52

95052-JH52-AHX气门阀

95052-JH52-AHX 是一款工业用气动阀&#xff08;气门阀&#xff09;&#xff0c;用于控制气体或气动系统中的流量与压力。以下是详细介绍&#xff1a;模块概述95052-JH52-AHX气门阀是一种高精度、耐用的气动控制装置&#xff0c;可实现气体流量的精确调节和快速响应。它广泛应用…

作者头像 李华
网站建设 2026/5/31 9:55:40

【Open-AutoGLM原理深度解析】:揭秘下一代自动化大模型框架核心技术

第一章&#xff1a;Open-AutoGLM原理框架概述Open-AutoGLM 是一个面向自动化通用语言建模的开源架构&#xff0c;旨在通过模块化设计和动态调度机制提升大语言模型在复杂任务中的推理效率与泛化能力。该框架融合了提示工程、自我修正机制与多代理协作策略&#xff0c;支持在无监…

作者头像 李华