leetcode如何求最长湍流子数组
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下leetcode如何求最长湍流子数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!当 A 的子数组 A[
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
命令创建数据库用户
维普中文科技期刊数据库检索系统
视频转换软件开发
值得玩的二手服务器
网络安全教育公益讲座介绍
网络安全为人民手抄报简单
太原软件开发月薪多少
dbc数据库没设置好
测试asp数据库结果集
计算机网络技术电子教案下载
软件开发不付款
简单商品页连接数据库
计算机软件开发有用吗
oracle数据库路径
服务器上盾能不被打死吗
服务器未响应加速器
如何提升自己的网络安全性
网吧没有服务器能上网吗
数据库统计选课的学生人数
网络安全人员推荐app
数据库的基本操作单位是
病症诊疗数据库er图
流体力学仿真软件开发
电脑服务器哪个版本最好
我的世界自带光影的服务器有哪些
无线网络技术岗位
园区建立环境风险源数据库
海外外贸服务器
软件系统服务器资源怎么分配
软件开发团队 实力