leetcode如何求最长湍流子数组
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,小编给大家分享一下leetcode如何求最长湍流子数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!当 A 的子数组 A[
千家信息网最后更新 2025年02月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 <= 40000
0 <= 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:=0
max:=0
for i:=1;i
if sign(A[i-1],A[i])*sign(A[i],A[i+1])!=-1{
start=i
if 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安全错误
数据库的锁怎样保障安全
华为csc网络安全考试答案
2018年网络安全宣传周题
软件开发平台最好的
开一个直播公司需要租服务器吗
数据库主键的语法
ios开发用哪个数据库好
静安区营销软件开发不二之选
《网络数据库》
三丰云服务器有免费的吗
汽车车载网络技术的应用
买个服务器主机多少钱
高中信息技术基础数据库系统
广州雷智网络技术有限公司
fm2022中国数据库
数据库中图片复制到哪里
软件开发公司一般工作照片
青少年网络安全动漫微课堂
幻塔服务器怎么进不去
网络安全检测工作流程
软件开发免税么
软件开发团队去哪里找
微信云服务器如何使用
原神亚服港澳台服务器
上海长航网络技术
台州六度空间软件开发
徐州运营网络技术市场价格
广东服务器机柜哪里批发
软件开发功能测试验证记录
滨州联想服务器哪家是专业做的
网络技术和信息安全