笔试训练48天:最长无重复子数组

NC41 最长无重复子数组中等 通过率:29.72% 时间限制:1秒 空间限制:256M

知识点数组双指针哈希

https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4?tpId=196&tqId=37149&ru=/exam/oj

描述

给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。

子数组是连续的,比如1,3,5,7,9的子数组有1,3,3,5,7等等,但是1,3,7不是子数组

数据范围:0≤arr.length≤1050≤arr.length≤105,0<arri≤1050<arri≤105

示例1

输入:2,3,4,5

返回值:4

说明:2,3,4,5是最长子数组

示例2

输入:2,2,3,4,3

返回值:3

说明:2,3,4是最长子数组

示例3

输入:9

返回值:1

示例4

输入:1,2,3,1,2,3,2,2

返回值:3

说明:最长子数组为1,2,3

示例5

输入:2,2,3,4,8,99,3

返回值:5

说明:最长子数组为2,3,4,8,99

思路:最长无重复:哈希表

cpp 复制代码
#include <algorithm>
class Solution {
int hash[100010]={0};
public:
    int maxLength(vector<int>& arr)
    {
        int left=0,right=0,n=arr.size();
        int ret=0;
        while(right<n)
        {
            hash[arr[right]]++;
            while (hash[arr[right]]>1) {
                hash[arr[left]]--;
                left++;
            }
            ret=max(ret,right-left+1);
            right++;
        }
        return ret;
    }
};
相关推荐
David猪大卫12 小时前
【C++修炼】STL容器—stack与queue
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
瑶池酒剑仙12 小时前
C++变量初始化五法完全指南:默认/拷贝/直接/列表/值初始化与窄化转换陷阱(青云之志)
c语言·开发语言·数据结构·c++·算法·visual studio
用户2380030994512 小时前
从零开始实现扫雷游戏(C 语言控制台版)
算法
国科安芯13 小时前
星上计算的第一道防线:低轨遥感卫星载荷处理链中的AS32S601型抗辐射MCU—— 面向高分辨率成像与在轨智能处理的场景化综述
大数据·网络·人工智能·单片机·算法·低轨卫星·抗辐射
thusloop13 小时前
零门槛接入 GPT-6-astra 与 claude-opus-5-5,三大场景实战指南
python·gpt·算法·agent·claude·codex
瓦瓦gogo13 小时前
学回溯算法时,我先弄明白了怎么“退回来”
算法
Lzg_na13 小时前
堆和堆排序
算法
TK泰妞13 小时前
TikTok 带货视频如何做多语言本地化?从翻译脚本到重做场景的实用方法
算法·音视频
房开民13 小时前
DDPM 完整原理 + 全套公式串联
算法
lunar_coder14 小时前
哈希扩展 -- 位图思想
c++·算法·哈希算法