• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

最长无的重复子串的长度

开发技术 开发技术 2周前 (04-08) 7次浏览

题目描述

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

备注:1 <= n <= 105

使用空间换时间

int maxLength(vector<int>& arr)
{
    int size = arr.size();
    int check[1000000] = { 0 };
    int left = 0;
    int right = 0;
    int max = 1;
    for (left = 0; left < size; left++)
    {
        memset(check, 0, sizeof(check));
        check[arr[left]] = 1;

        right = left + 1;
        while (right < size)
        {
            if (check[arr[right]] == 0)
            {
                int len = right - left + 1;
                max = max > len ? max : len;
                check[arr[right]] = 1;
            }
            else
            {
                break;
            }
            right++;
        }
    }

    //cout << max << endl;
    return max;
}

 


程序员灯塔
转载请注明原文链接:最长无的重复子串的长度
喜欢 (0)