leetcode如何实现最长湍流子数组
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍leetcode如何实现最长湍流子数组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、题目内容当 A 的子数组 A[i], A[i+1], ..., A[j]
千家信息网最后更新 2026年11月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 <= 40000
0 <= A[i] <= 10^9
二、解题思路
奇偶判断,根据题目条件中的前后大小关系写出代码即可。
三、代码
class Solution: def maxTurbulenceSize(self, arr: list) -> int: ans = 0 for i in range(2): count = 0 for j in range(len(arr) - 1): if j % 2 == i: if arr[j] > arr[j + 1]: count += 1 else: count = 0 else: if arr[j] < arr[j + 1]: count += 1 else: count = 0 ans = max(ans, count) return ans + 1if __name__ == '__main__': s = Solution() arr = [0,1,1,0,1,0,1,1,0,0] ans = s.maxTurbulenceSize(arr) print(ans)
以上是"leetcode如何实现最长湍流子数组"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
数组
湍流
内容
示例
输入
输出
最长
代码
条件
篇文章
题目
最大
之间
也就是
也就是说
价值
偶数
元素
兴趣
大小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手磨咖啡
重生之互联网科技帝国
北京互联网科技
互联网科技公司怎么样
滨湖区互联网智能科技产品供应
成都仁贤领冠互联网科技有限公司
互联网科技公司招聘
银川新华互联网科技学校地址
开启互联网科技时代小说
农村开互联网科技讲堂
互联网科技中介
重庆威客帮互联网科技
互联网大会黑科技排名
互联网科技与大数据专业
工业互联网山东科技大学
上海科技产业互联网平台
互联网科技年终奖
互联网安防科技感
全球科技与互联网公司市值变化
长沙渺峰互联网科技有限公司
科技金融是不是互联网金融
上海挚品互联网科技
互联网科技股票
互联网科技视频
奇士达互联网科技
全球顶尖互联网科技公司
浙江互联网科技研学营
宜昌元轩互联网科技有限公司
996高科技互联网公司
银川新华互联网科技学校原画