【找出最长等值子数组】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
相关推荐
ai产品老杨2 分钟前
国产NPU视觉算法完整流程
算法
过期的秋刀鱼!4 分钟前
带替换的采样
人工智能·python·算法·决策树·机器学习
Python私教6 分钟前
AI Agent 可观测性不只是日志:一套可回放的多步执行链
人工智能·后端·python
Python私教19 分钟前
模型越强越不需要 Skills?我把 AI 编程能力拆成 4 层
人工智能·后端·python
过期的秋刀鱼!23 分钟前
使用多个决策树
人工智能·算法·决策树·机器学习·数据挖掘
databook30 分钟前
如何快速构建一个数据科学应用?从零到上线
python·机器学习·scikit-learn
上下求索,莫负韶华36 分钟前
切面学习笔记
笔记·python·学习
203号居民1 小时前
LeetCode hot 100 —560. 和为 K 的子数组
java·算法·leetcode
2301_806709381 小时前
国内知名的生活水箱制造厂有哪些
python·生活
学掌门2 小时前
超级菜鸟怎么学习数据分析?
python·学习·数据分析