题解 | 最长无重复子数组

最长无重复子数组

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;
}

全部评论

相关推荐

自由水:笑死了,敢这么面试不敢让别人说
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务