题目链接
题目:当 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增加-1减少0不变,然后得到一个新的数组,为了省空间我直接在原来数组进行操作的,也可以开辟个新的数组。然后比较相邻数变化即可,若相邻数字乘积为负,则说明满足湍流数组性质,累加记录其长度。

class Solution {public int maxTurbulenceSize(int[] A) {int len = A.length;int maxLen = 0;int count = 2;if(len < 2){return len;}for(int i = 1; i < len; i++){if(A[i] - A[i-1] > 0){A[i-1] = 1;}else if(A[i] - A[i-1] < 0){A[i-1] = -1;}else{A[i-1] = 0;}}for(int i = 1; i < len - 1; i++){while(i < len - 1 && A[i] * A[i-1] < 0){count++;i++;}maxLen = Math.max(maxLen, count);count = 2;}return maxLen;}
}

leetcode978. Longest Turbulent Subarray相关推荐

  1. LeetCode--978. Longest Turbulent Subarray

    问题链接:https://leetcode.com/problems/longest-turbulent-subarray/ 最近本菜鸡在尝试参加LeetCode Contest,发现自己的水平在规定 ...

  2. LeetCode——978. 最长湍流子数组(Longest Turbulent Subarray)——分析及代码(Java)

    LeetCode--978. 最长湍流子数组[Longest Turbulent Subarray]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划(一维数组) (1)思路 (2) ...

  3. [Swift]LeetCode978. 最长湍流子数组 | Longest Turbulent Subarray

    原文地址:https://www.cnblogs.com/strengthen/p/10294636.html A subarray A[i], A[i+1], ..., A[j] of A is s ...

  4. 978 Longest turbulent subarray

    文章目录 题目 滑动窗口思路 dp思路 滑动窗口高效 标签:sliding window, 滑动窗口 题目 A subarray A[i], A[i+1], ..., A[j] of A is sai ...

  5. LeetCode #978. Longest Turbulent Subarray

    题目描述: A subarray A[i], A[i+1], ..., A[j] of A is said to be turbulent if and only if: For i <= k ...

  6. 978. Longest Turbulent Subarray [Medium]

    /*** 自己的做法,用downFlg标志当前的判断是否需要是下降or上升来保持和前面的连续* Runtime: 5 ms, faster than 49.88%* Memory Usage: 42. ...

  7. leetcode 978. Longest Turbulent Subarray | 978. 最长湍流子数组(Java)

    题目 https://leetcode.com/problems/longest-turbulent-subarray/ 题解 虽然 similar questions 没列出来,但能想到之前做过的( ...

  8. leetCode 978. Longest Turbulent Subarray

    求一个数组中连续混乱子数组的最大长度,连续混乱子数组满足条件定义为:A[i-1]<A[i]>A[i+1]或A[i-1]>A[i]<A[i+1],最后得出长度 class Sol ...

  9. 978. Longest Turbulent Subarray——array

    题目分析:不是用动态规划,python3没有了cmp函数 class Solution(object):def cmp(self, a, b):if a > b:return 1if a < ...

最新文章

  1. 超级细分插件_草图大师必装插件
  2. servlet中response中文乱码
  3. .html(),.text()和.val()的差异总结
  4. hp服务器 新增硬盘_HP服务器linux操作系统如何添加硬盘
  5. Python识别验证码,基于Tesseract实现图片文字识别
  6. JavaScript的事件执行机制及异步
  7. Atitit 研发体系 codelib 代码库的建设 目录 1. 概念与组成 2 1.1. Java代码 2 1.2. Js代码 2 1.3. H5 代码 js+css+htm+txt 2 1.4.
  8. 手机电脑同屏_把手游变成端游的同屏神器,就是这款Onebit“X9”了!
  9. 【Windows 11 SE精简版】——低配机的专属
  10. 内九外七皇城四,九门八点一口钟_ywyuan_新浪博客
  11. Bootstrap(三) 网格系统
  12. 《招标投标法》和《招标投标实施条例》有什么关系?
  13. 高学历就意味着高薪资?低学历转行3D建模,游戏建模成为首选
  14. 商会协会团体网站搭建模板
  15. R语言统计学DOE实验设计:用平衡不完全区组设计(BIBD)分析纸飞机飞行时间实验数据...
  16. python中setup函数_Python包管理工具setuptools之setup函数参数详解
  17. 老森的梦,我的梦,有关预言。 (连载1)
  18. pycharm利用快捷键实现多选相同标签并修改
  19. HDOJ2502月之数
  20. java程序员的大数据之路(10):MapReduce的排序

热门文章

  1. C和指针 第五章 位数组
  2. 面向程序员的GPGPU技术系列(1) 为什么要理解GPU体系结构?
  3. 发现VB6中SAX的乐趣[转]
  4. python-多线程共享内存
  5. 原理简单,但不知道怎么用?一文看懂「同期群模型」
  6. 用c#算成绩的总和_用c#输入几门课程成绩求总成绩和平均成绩,定义方法实现如果输入的成绩不是整数,则重新输入(方法)...
  7. 华为鸿蒙系统是指芯片吗_没有了芯片,华为能靠鸿蒙OS系统打出差异化吗?
  8. ddr老化测试_手把手教你评估和测试固态存储【深度】
  9. 考虑题4所示的日志记录_基于Log4Net实现日志信息双向存储
  10. 多进程参数args元组方式与kwargs字典方式