题解 | #最长无重复子数组#

最长无重复子数组

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

1.双指针法。

#define MAXNUM 1
class Solution {
public:
    /**
     * 
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxLength(vector<int>& arr) {
        // write code here
        map<int,int> mark = map<int,int>();
        int res = 0,current=0;
        int start=-1,end=0;
        for(int end=0;end<arr.size();end++) {
            int elem = arr[end];
            if(mark.find(elem)!=mark.end()) {
                mark[elem]++;
            }else{
                mark[elem] = 1;
            }
            while(mark[elem]>MAXNUM) {
                start += 1;
                int elem_start = arr[start];
                mark[elem_start] -= 1;
            }
            res = max(res,end-start);
        }
        return res;
    }
};
全部评论

相关推荐

07-24 19:01
门头沟学院 Java
后天笔试,又要开始做题了
Sairus:明天10:00笔试
投递京东等公司10个岗位
点赞 评论 收藏
分享
想按时下班的大菠萝在...:隔壁学校的,加油多投, 实在不好找可以下个学期开学找,把算法八股准备好,项目有空再换换
投了多少份简历才上岸
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务