牛客题霸 [找到字符串的最长无重复字符子串] C++题解/答案
题目描述
给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。
题解:
i和j两个指针分别指不重复子串的两端,根据情况各自移动,记录最大值即可
代码:
class Solution {
public:/*** * @param arr int整型vector the array* @return int整型*/int maxLength(vector<int>& arr) {// write code hereif(arr.size()==0) return 0;vector<int> v(100000);int sum=0;int i=0;int j=0;while(j<arr.size()){if(v[arr[j]]==0){v[arr[j]]=1;sum=max(sum,j-i+1);j++;}else{v[arr[i]]=0;i++;}}return sum;}
};