leetcode如何求最长湍流子数组
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下leetcode如何求最长湍流子数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!当 A 的子数组 A[
千家信息网最后更新 2026年11月03日leetcode如何求最长湍流子数组
小编给大家分享一下leetcode如何求最长湍流子数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
当 A 的子数组 A[i], A[i+1], ..., A[j] 满足下列条件时,我们称其为湍流子数组:
若
i <= k < j,当k为奇数时,A[k] > A[k+1],且当k为偶数时,A[k] < A[k+1];或 若
i <= k < j,当k为偶数时,A[k] > A[k+1],且当k为奇数时,A[k] < A[k+1]。
也就是说,如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数组。
返回 A 的最大湍流子数组的长度。
示例 1:
输入:[9,4,2,10,7,8,8,1,9]
输出:5
解释:(A[1] > A[2] < A[3] > A[4] < A[5])
示例 2:
输入:[4,8,12,16]
输出:2
示例 3:
输入:[100]
输出:1
提示:
1 <= A.length <= 400000 <= A[i] <= 10^9
解题思路:
1,题目意思翻译:连续呈波浪线增减的数组长度最大值
2,取A[i-1],A[i],A[i+1]三个值
A,如果满足条件,则右指针递增
B,不满足条件左指针移动到当前位置
3,注意边界条件
A,一个数
B,两个数
(1)两个数不等
(2)两个数相等
C,A[i-1],A[i],A[i+1]三个值中
(1)3个数相等
(2)两个数相等
func maxTurbulenceSize(A []int) int {if len(A) <2{return len(A)}if len(A)==2{if A[0]==A[1]{return 1}return 2}start:=0max:=0for i:=1;iif sign(A[i-1],A[i])*sign(A[i],A[i+1])!=-1{start=iif sign(A[i-1],A[i])==0 && sign(A[i],A[i+1])==0{if max<1{max=1}}else{if max <2{max=2}}}else if max< i-start+2{max=i-start+2}}return max}func sign(a,b int) int{if a>b{return 1}if a==b{return 0}return -1}
以上是"leetcode如何求最长湍流子数组"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数组
湍流
两个
条件
示例
篇文章
输入
输出
最长
最大
三个
个数
偶数
内容
奇数
指针
长度
不怎么
之间
也就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
广州为想互联网科技有限公司
苏州找大状互联网科技有限公司
互联网金融与金融科技
科技创新互联网企业
互联网科技论坛
互联网金融和金融科技
金融科技和互联网金融
恒生科技互联网指数分析
互联网科技产品
阿里互联网科技公司
宝灵互联网科技有限公司
新兴科技互联网创新大赛颁奖典礼
苏州铭阳互联网科技有限公司
互联网企业科技类企业如何做账
半导体是互联网高科技吗
江苏互联网智能科技产品出厂价
安徽零酒互联网科技有限公司
山东蛋芒互联网科技有限公司
如何强化互联网金融科技
互联网科技园
上海睿民互联网科技有限公司
互联网的科技
科技信息互联网
科技互联网技术
互联网科技金融公司
互联网与未来科技
鑫亿盛互联网科技
九亚互联网科技
北京天晋互联网科技有限公司