【找出最长等值子数组】python

python 复制代码
class Solution:
    def longestEqualSubarray(self, nums: List[int], k: int) -> int:
        n=len(nums)
        if n<2:
            return n
        mx=1
        for i,num in enumerate(nums):
            error=0
            flag=1
            for j in range(i+1,n):
                if nums[j]==num:
                    flag+=1
                    mx=max(mx,flag)
                else:
                    error+=1
                    if error>k:
                        break
        return mx

暴力循环超时

使用双指针改造

python 复制代码
class Solution:
    def longestEqualSubarray(self, nums: List[int], k: int) -> int:
        d, ans = defaultdict(list), 1
        for i, x in enumerate(nums): d[x].append(i)
        for lst in d.values():
            i, j, n = 0, 0, len(lst)
            while i < n:
                while j < n and lst[j] - lst[i] <= j - i + k: j += 1
                ans, i = max(ans, j - i), i + 1
        return ans
相关推荐
FriendshipT1 分钟前
Ultralytics:解读BNContrastiveHead模块
人工智能·pytorch·python·深度学习·目标检测
tkevinjd2 分钟前
416分割等和子集
java·python·算法·leetcode·职场和发展
Keven_1111 分钟前
算法札记:Tarjan与拓扑序(Topo)的关系
算法·拓扑·tarjan
ShallWeL25 分钟前
AUC、F1、召回率怎么选
人工智能·算法·机器学习
布朗克16827 分钟前
Go 入门到精通-15-错误处理
开发语言·python·golang·错误处理
m0_5474866629 分钟前
《Python程序设计与数据分析》全套PPT课件
python·数据分析
水龙吟啸39 分钟前
华为2026.6.3机考选择题+编程题【速刷敲黑板】
人工智能·深度学习·算法·华为
盼小辉丶42 分钟前
OpenCV-Python实战(33)——构建实时目标检测与跟踪系统
python·opencv·目标检测·计算机视觉
学究天人43 分钟前
数学公理体系大全:第十四章 向量空间与模:线性代数的公理化与推广
线性代数·算法·矩阵·动态规划·抽象代数
bill32822780432 小时前
从 0 到 1 掌握 1688API:商品详情获取技巧
python