【找出最长等值子数组】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
相关推荐
码爸12 分钟前
支持向量机介绍与示例
算法·机器学习·支持向量机
怕浪猫21 分钟前
2028编程圈很火的10个Skills
算法·面试·github
Smoothcloud润云1 小时前
PyTorch大模型权重加载与启动耗时优化实战:定位磁盘、内存与显存瓶颈
人工智能·pytorch·python·深度学习·gpu算力
databook2 小时前
从循环到向量化:NumPy提速的7个关键思维
python·数据分析·numpy
棉猴2 小时前
玩游戏学Python1-Python和pgzero库的安装
python·pygame·玩游戏·pgzero·pgzrun
诺伦2 小时前
GEO优化数据实证:78%引用流向官网的机制拆解与小品牌三步管线实战教程 | RiseClaw玄策
python·seo·geo·内容营销·ai搜索
oooost3 小时前
pytorch学习笔记1
python·学习方法
数字融合3 小时前
透明化视频孪生虚实映射一体化融合技术
人工智能·python·数码相机
jack186893 小时前
Lovable.Dev 全栈应用快速落地实战指南
python
华研前沿标杆游学4 小时前
【标杆研学】走进茅台集团|对标学习长期主义与匠心精神
python