跳到主要内容

2765.最长交替子数组

链接:2765.最长交替子数组
难度:Easy
标签:数组、枚举
简介:请你返回 nums 中所有 交替 子数组中,最长的长度,如果不存在交替子数组,请你返回 -1 。

题解 1 - python

  • 编辑时间:2024-01-23
  • 执行用时:57ms
  • 内存消耗:16.51MB
  • 编程语言:python
  • 解法介绍:一次遍历,记录当前下标为结尾的最大值。
class Solution:
def alternatingSubarray(self, nums: List[int]) -> int:
n = len(nums)
ans = res = 2 if nums[1] - nums[0] == 1 else 0
for i in range(2, n):
if res and nums[i] == nums[i - 2]:
res += 1
elif nums[i] - nums[i - 1] == 1:
res = 2
else:
res = 0
ans = max(ans, res)
return ans if ans else -1