给定一个数组,找到最长的turbulent子数组的长度
turbulent子数组就是一增一减交替
其实这题也很简单,就是直接找子数组,不满足条件了,就重新开始算文章来源:https://www.toymoban.com/news/detail-721575.html
class Solution {
public:
int maxTurbulenceSize(vector<int>& arr) {
int ans = 1, n = arr.size(), cur = 1;
int state = 0;
for(int i = 1; i < n; ++i){
if(arr[i] == arr[i - 1]){
state = 0;
cur = 1;
}
else if(arr[i - 1] < arr[i]){
if(state == -1){
++cur;
}
else{
cur = 2;
}
ans = max(cur, ans);
state = 1;
}
else{
if(state == 1){
++cur;
}
else{
cur = 2;
}
ans = max(cur, ans);
state = -1;
}
}
return ans;
}
};
时间复杂度 O ( n ) O(n) O(n)文章来源地址https://www.toymoban.com/news/detail-721575.html
到了这里,关于Leetcode978. Longest Turbulent Subarray的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!