同昨天的解法一样,遍历一遍的同时,统计当前最长的子串长度,如果>=k,则将子串开始位置处赋值子串当前位置元素的值。
class Solution:def resultsArray(self, nums: List[int], k: int) -> List[int]:res = [-1] * (len(nums) - k + 1)count = 0for i in range(len(nums)):if nums[i] - nums[i - 1] == 1:count += 1else:count = 1if count >= k:res[i - k + 1] = nums[i]print(i - k + 1, i)return res
需要注意的是计数器的初始化,应该是0而不是1,因为还没有开始统计。0位置的计数器会在else被赋值为1。