个人技术分享

要求:给定一个数组,找出符合【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

自己重写的时候出现的写错句子: