Leetcode978. Longest Turbulent Subarray

这篇具有很好参考价值的文章主要介绍了Leetcode978. Longest Turbulent Subarray。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

给定一个数组,找到最长的turbulent子数组的长度

turbulent子数组就是一增一减交替

其实这题也很简单,就是直接找子数组,不满足条件了,就重新开始算

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode 918. Maximum Sum Circular Subarray【数组,动态规划】中等

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2024年02月15日
    浏览(36)
  • LeetCode //C - 128. Longest Consecutive Sequence

    Given an unsorted array of integers nums , return the length of the longest consecutive elements sequence. You must write an algorithm that runs in O(n) time.   Example 1: Input: nums = [100,4,200,1,3,2] Output: 4 Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]. Therefore its length is 4. Example 2: Input: nums = [0,3,7,2,5,8,4,6,0,1]

    2024年02月13日
    浏览(27)
  • LeetCode 2090. K Radius Subarray Averages【前缀和,滑动窗口,数组】中等

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2024年02月11日
    浏览(33)
  • LeetCode1124. Longest Well-Performing Interval

    We are given hours, a list of the number of hours worked per day for a given employee. A day is considered to be a tiring day if and only if the number of hours worked is (strictly) greater than 8. A well-performing interval is an interval of days for which the number of tiring days is strictly larger than the number of non-tiring days. Return the length of

    2024年01月21日
    浏览(26)
  • LeetCode!! 3. Longest Substring Without Repeating Characters

    参考资料:左程云算法课 思路: 首先,以str[i]为例,计算 局部最优解 以str[i]为结尾的无重复字符的最长子串的长度 。然后,遍历字符串,即i取0,1,…, n-1,取局部最优解的最大值,得到全局最优解。 具体地,求 以str[i]为结尾的无重复字符的最长子串的长度 ,可以使用动

    2024年02月08日
    浏览(25)
  • 【递增栈】个人练习-Leetcode-845. Longest Mountain in Array

    题目链接:https://leetcode.cn/problems/longest-mountain-in-array/ 题目大意:给出一个数组 arr[] ,定义【山数组】为【长度大于等于3】【前面部分递增,后面部分递减,存在一个山峰元素】的数组。求 arr[] 中的最长的是【山数组】的子列。 思路:递增栈当然可以,不过刚好想到另一个

    2024年02月06日
    浏览(41)
  • LeetCode 1048. Longest String Chain【记忆化搜索,动态规划,哈希表,字符串】中等

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2024年02月05日
    浏览(33)
  • dp算法 力扣978、力扣139、力扣467

    目录 一、力扣978978. 最长湍流子数组 - 力扣(LeetCode) (一)题目详情 (二)算法讲解 (三)代码 二、力扣139139. 单词拆分 - 力扣(LeetCode) (一)题目详情 (二)算法讲解 (三)代码 三、力扣467467. 环绕字符串中唯一的子字符串 - 力扣(LeetCode) (一)题目详情 (二)

    2024年02月16日
    浏览(24)
  • win11 9月累积更新补丁KB5017328(22000.978)发布!

    微软今天推送了 2022 年 9 月的累积更新补丁,Microsoft 将为Windows 11的原始版本提供更新 KB5017328 ,其中包括安全漏洞和错误修复以及改进。 更新 KB5017328 将版本号撞到 22000.978,根据更改,它解决了影响 Microsoft 帐户的问题。此更新还包括以前在 8 月 16 日的更新预览中提供的非

    2024年02月05日
    浏览(29)
  • 1200*B. Interesting Subarray(贪心&规律)

    Problem - 1270B - Codeforces   解析:         可以发现,对于某个符合条件的数列,如果两个最值不在两端,那么可以删去两端多余的元素直到两个最值在两端为止。         我们观察某两个相邻元素a、b,可以发现这两个元素组成的序列成立的条件为abs(b-a)=2         再观察三

    2024年02月08日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包