七七老师の白日梦
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

不间断子数组

写作时间:2026-09-02 08:37:32

题目

给你一个下标从 0 开始的整数数组 nums 。nums 的一个子数组如果满足以下条件,那么它是 不间断 的:

  • i,i + 1 ,...,j 表示子数组中的下标。对于所有满足 i <= i1, i2 <= j 的下标对,都有 0 <= |nums[i1] - nums[i2]| <= 2 。

请你返回 不间断 子数组的总数目。

子数组是一个数组中一段连续 非空 的元素序列。

链接

2762. 不间断子数组


‍

代码

from ast import List
from collections import Counter


class Solution:
    def continuousSubarrays(self, nums: List[int]) -> int:
        ans = 0
        left = 0
        cnt = Counter()
        for right,x in enumerate(nums):
            cnt[x] += 1
            while max(cnt) - min(cnt) > 2:
                y = nums[left]
                cnt[y] -= 1
                if cnt[y] == 0:
                    del cnt[y]
                left += 1
            ans += right -left + 1
        return ans

‍

avatar

七七老师

分享代码日常

RECOMMENDED

七七旧事:复盘并改变写博客的方式

2026-07-02 22:54:38

字母异位词

2026-07-04 22:22:08

寻找两个正序数组的中位数:合并与二分

2026-07-08 15:56:26

Table of Contents