class Solution:
def longestMonotonicSubarray(self, nums: List[int]) -> int:
n = len(nums)
res = 1
for i in range(n - 1):
curLen = 1
for j in range(i + 1, n):
if nums[j] == nums[j - 1] or ((nums[i] < nums[i + 1]) != (nums[j - 1] < nums[j])):
break
curLen += 1
res = max(res, curLen)
return resclass Solution:
def longestMonotonicSubarray(self, nums: List[int]) -> int:
cur = 1
res = 1
increasing = 0
for i in range(1, len(nums)):
if nums[i - 1] < nums[i]:
if increasing > 0:
cur += 1
else:
cur = 2
increasing = 1
elif nums[i - 1] > nums[i]:
if increasing < 0:
cur += 1
else:
cur = 2
increasing = -1
else:
cur = 1
increasing = 0
res = max(res, cur)
return resclass Solution:
def longestMonotonicSubarray(self, nums: List[int]) -> int:
inc = dec = 1
res = 1
for i in range(1, len(nums)):
if nums[i] == nums[i - 1]:
inc = dec = 1
elif nums[i] > nums[i - 1]:
inc, dec = inc + 1, 1
else:
inc, dec = 1, dec + 1
res = max(res, inc, dec)
return resclass Solution:
def longestMonotonicSubarray(self, nums: List[int]) -> int:
curLen = res = 1
for i in range(1, len(nums)):
if (nums[i] == nums[i - 1] or
((nums[i - curLen] < nums[i - curLen + 1]) != (nums[i - 1] < nums[i]))
):
curLen = 1 if (nums[i] == nums[i - 1]) else 2
continue
curLen += 1
res = max(res, curLen)
return res