题解 | 最长无重复子数组

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param arr int整型一维数组 the array
 * @param arrLen int arr数组长度
 * @return int整型
 */
int maxLength(int* arr, int arrLen ) {
    // write code here
    int  maxLength = 0;
    int right = 0;
    int left = 0;
    int hash[1000001] = { 0 };

    while(right < arrLen)
    {
        if(hash[arr[right]] == 0)
        {
            hash[arr[right]] = 1;
            maxLength = ( (right - left + 1) > maxLength ) ? (right - left + 1) : maxLength;
            right++;
        }
        else 
        {
            hash[arr[left]] = 0;
            left++;
        }
    }
    return maxLength;
}

思路:利用哈希表和滑动窗口解决。

全部评论

相关推荐

05-24 20:52
东南大学 C++
点赞 评论 收藏
分享
在看数据的傻狍子很忙碌:学生思维好重,而心很急,自己想想真的能直接做有难度的东西吗?任何错误都是需要人担责的,你实习生可以跑路,你的同事领导呢
点赞 评论 收藏
分享
完美的潜伏者许愿简历通过:我上表jd,请求封我做后端大将军的事,北京有消息了:竟然不许!!! 他们一定是看我没有实习,这才故意驳回我的请求!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务