LeetCode 3105. Longest Strictly Increasing or Strictly Decreasing Subarray

39 阅读1分钟

🔗 leetcode.com/problems/lo…

题目

  • 给一个数组,返回其最长严格升序或者降序的子数组长度

思路

  • 模拟

代码

class Solution {
public:
    int longestMonotonicSubarray(vector<int>& nums) {
        int ans = 1;
        int in_len = 1, de_len = 1;
        for (int i = 1; i < nums.size(); i++) {
            if (nums[i] > nums[i-1]) {
                in_len++;
                ans = max(ans, de_len);
                de_len = 1;
            }
            if (nums[i] < nums[i-1]) {
                de_len++;
                ans = max(ans, in_len);
                in_len = 1;
            }
            if (nums[i] == nums[i-1]) {
                ans = max(ans, in_len);
                ans = max(ans, de_len);
                in_len = de_len = 1;
            }
        }
        ans = max(ans, in_len);
        ans = max(ans, de_len);
        return ans;
    }
};