今日题目

https://leetcode.com/problems/longest-strictly-increasing-or-strictly-decreasing-subarray/

解题思路

按题意模拟即可。

解题方法

按题意模拟即可。

复杂度分析

  • 时间复杂度:$O(N)$,N 为数组长度。

  • 空间复杂度:$O(1)$。

代码

class Solution:
    def longestMonotonicSubarray(self, nums: List[int]) -> int:
        cntI, cntD = 1,1
        ans = 1
        pre = nums[0]

        for x in nums[1::]:
            if x > pre:
                cntI += 1
                ans = max(ans, cntD)
                cntD = 1
            elif x < pre:
                cntD += 1
                ans = max(ans, cntI)
                cntI = 1
            
            else:
                ans = max(ans, cntI, cntD)
                cntI = 1
                cntD = 1

            pre = x
        
        return max(ans, cntI, cntD)