题解 | #最长无重复子数组#C++ unordered_map 解决

最长无重复子数组

http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4

class Solution {
public:
    /**
     * 
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxLength(vector<int>& arr) {
        // write code here
        // 数组的值——数组的index
        unordered_map<int, int> value_index;
        int maxSize = 0;
        int curSize = 0;

        for (int i = 0; i < arr.size(); i++) {
            if (value_index.count(arr[i]) == 0) {
                value_index[arr[i]] = i;
                curSize++;
            }
            else if (value_index.count(arr[i]) > 0){
                // 记录上一次出现重复的值的 index
                i = value_index[arr[i]];
                value_index.clear();

                curSize = 0;
            }

            if (maxSize < curSize) {
                maxSize = curSize;
            }
        }

        return maxSize;
    }
};
全部评论

相关推荐

Bug压路:老哥看得出来你是想多展示一些项目,但好像一般最多两个就够了😂页数一般一页,多的也就2页;这些项目应该是比较同质化的,和评论区其他大佬一样,我也觉得应该展示一些最拿手的(质量>数量)😁😁😁专业技能部分也可以稍微精简一些
点赞 评论 收藏
分享
挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
4 收藏 评论
分享
牛客网
牛客企业服务