笔试训练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;
    }
};
相关推荐
罗湖老棍子5 小时前
C Looooops(信息学奥赛一本通- P1640)
算法·数论·同余·裴蜀定理·扩展欧几里得
飘尘8 小时前
从"算子"到"AI Infra":大模型背后看不见的那群人在忙什么
人工智能·算法·面试
mokongJ8 小时前
17 份异构销售数据的合并清洗方案:30 万行处理耗时 9.64 秒
数据结构
夏幻灵8 小时前
每日一题:LeetCode 3:无重复字符的最长子串——滑动窗口思路详解
算法·leetcode·职场和发展
CarIise9 小时前
Java实训阶段查漏补缺复习笔记2
java·linux·算法
无忧.芙桃9 小时前
C++ 并查集详解:原理、实现与应用
c语言·c++·算法·leetcode
蛋蛋的就会顺顺的9 小时前
hot100——二叉树
java·数据结构·算法·leetcode·力扣
Code_Solitude10 小时前
c语言:二分法的完整补充
c语言·开发语言·算法
一切皆是因缘际会10 小时前
掌控信息论:同源星际通信基础理论
人工智能·算法·ai
List<String> error_P11 小时前
freertos数据结构--链表
数据结构·链表