题解 | 最长无重复子数组
最长无重复子数组
https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param arr int整型一维数组 the array
* @param arrLen int arr数组长度
* @return int整型
*/
int maxLength(int* arr, int arrLen ) {
// write code here
int i=0,j=0,max=0,k,temp=0;
//i 和 j 是双指针,用于维护滑动窗口的左右边界
//i 是右指针,用于扩展窗口。
//j 是左指针,用于收缩窗口
//k 是临时变量,用于遍历窗口内的元素
while(i<arrLen)
{
for(k=j;k<i;k++)
{
if(arr[i]==arr[k])
{
//跳过重复元素
j=k+1;
}
}
i++;//拓展窗口
temp=i-j;//当前窗口长度
if(temp>max)
max=temp;
}
return max;
}
查看9道真题和解析