leetcode978. Longest Turbulent Subarray
题目链接
题目:当 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相关推荐
- LeetCode--978. Longest Turbulent Subarray
问题链接:https://leetcode.com/problems/longest-turbulent-subarray/ 最近本菜鸡在尝试参加LeetCode Contest,发现自己的水平在规定 ...
- LeetCode——978. 最长湍流子数组(Longest Turbulent Subarray)——分析及代码(Java)
LeetCode--978. 最长湍流子数组[Longest Turbulent Subarray]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划(一维数组) (1)思路 (2) ...
- [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 ...
- 978 Longest turbulent subarray
文章目录 题目 滑动窗口思路 dp思路 滑动窗口高效 标签:sliding window, 滑动窗口 题目 A subarray A[i], A[i+1], ..., A[j] of A is sai ...
- 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 ...
- 978. Longest Turbulent Subarray [Medium]
/*** 自己的做法,用downFlg标志当前的判断是否需要是下降or上升来保持和前面的连续* Runtime: 5 ms, faster than 49.88%* Memory Usage: 42. ...
- leetcode 978. Longest Turbulent Subarray | 978. 最长湍流子数组(Java)
题目 https://leetcode.com/problems/longest-turbulent-subarray/ 题解 虽然 similar questions 没列出来,但能想到之前做过的( ...
- leetCode 978. Longest Turbulent Subarray
求一个数组中连续混乱子数组的最大长度,连续混乱子数组满足条件定义为:A[i-1]<A[i]>A[i+1]或A[i-1]>A[i]<A[i+1],最后得出长度 class Sol ...
- 978. Longest Turbulent Subarray——array
题目分析:不是用动态规划,python3没有了cmp函数 class Solution(object):def cmp(self, a, b):if a > b:return 1if a < ...
最新文章
- 超级细分插件_草图大师必装插件
- servlet中response中文乱码
- .html(),.text()和.val()的差异总结
- hp服务器 新增硬盘_HP服务器linux操作系统如何添加硬盘
- Python识别验证码,基于Tesseract实现图片文字识别
- JavaScript的事件执行机制及异步
- Atitit 研发体系 codelib 代码库的建设 目录 1. 概念与组成	2 1.1. Java代码	2 1.2. Js代码	2 1.3. H5 代码 js+css+htm+txt	2 1.4.
- 手机电脑同屏_把手游变成端游的同屏神器,就是这款Onebit“X9”了!
- 【Windows 11 SE精简版】——低配机的专属
- 内九外七皇城四,九门八点一口钟_ywyuan_新浪博客
- Bootstrap(三) 网格系统
- 《招标投标法》和《招标投标实施条例》有什么关系?
- 高学历就意味着高薪资?低学历转行3D建模,游戏建模成为首选
- 商会协会团体网站搭建模板
- R语言统计学DOE实验设计:用平衡不完全区组设计(BIBD)分析纸飞机飞行时间实验数据...
- python中setup函数_Python包管理工具setuptools之setup函数参数详解
- 老森的梦,我的梦,有关预言。 (连载1)
- pycharm利用快捷键实现多选相同标签并修改
- HDOJ2502月之数
- java程序员的大数据之路(10):MapReduce的排序
热门文章
- C和指针 第五章 位数组
- 面向程序员的GPGPU技术系列(1) 为什么要理解GPU体系结构?
- 发现VB6中SAX的乐趣[转]
- python-多线程共享内存
- 原理简单,但不知道怎么用?一文看懂「同期群模型」
- 用c#算成绩的总和_用c#输入几门课程成绩求总成绩和平均成绩,定义方法实现如果输入的成绩不是整数,则重新输入(方法)...
- 华为鸿蒙系统是指芯片吗_没有了芯片,华为能靠鸿蒙OS系统打出差异化吗?
- ddr老化测试_手把手教你评估和测试固态存储【深度】
- 考虑题4所示的日志记录_基于Log4Net实现日志信息双向存储
- 多进程参数args元组方式与kwargs字典方式