要求:给定一个数组,找出符合【x, x+1,x,x-1】这样循环的最大交替数组长度。
思路:用两层while循环,第一个while用来找到符合这个循环的开头位置,第二个用来找到该循环的结束位置,并比较一下max进行记录。
易错:要进行减一,因为上一个字符串最后一个结束的数字可能是下一个字符串的开头。
class Solution:
def alternatingSubarray(self, nums: List[int]) -> int:
ans = 0
i ,n = 0, len(nums)
while i < n-1:
if nums[i+1]-nums[i] != 1:
i += 1
continue
i0 = i
i += 2
while i < n and nums[i] == nums[i - 2]:
i += 1
ans = max(ans, i-i0)
i -= 1
return ans
自己重写的时候出现的写错句子: