【找出最长等值子数组】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
相关推荐
girl-072613 小时前
2025.12.28代码分析总结
算法
NAGNIP16 小时前
GPT-5.1 发布:更聪明,也更有温度的 AI
人工智能·算法
NAGNIP16 小时前
激活函数有什么用?有哪些常用的激活函数?
人工智能·算法
2501_9444522316 小时前
字数统计 Cordova 与 OpenHarmony 混合开发实战
python
骚戴16 小时前
2025 Python AI 实战:零基础调用 LLM API 开发指南
人工智能·python·大模型·llm·api·ai gateway
元亓亓亓16 小时前
LeetCode热题100--416. 分割等和子集--中等
算法·leetcode·职场和发展
BanyeBirth16 小时前
C++差分数组(二维)
开发语言·c++·算法
kobe_OKOK_17 小时前
tdeinge REST API 客户端
python·缓存·django
io_T_T17 小时前
Python os库 os.walk使用(详细教程、带实践)
python
TonyLee01718 小时前
使用argparse模块以及shell脚本
python