双端队列求最长不重复子串的长度

找到字符串的最长无重复字符子串

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

public int maxLength (int[] arr) {
        Deque<Integer> deque = new ArrayDeque<>();
        int left = 0;
        int right = 0;
        int len = arr.length;
        int max = 0;
        while(right < len) {
            if(deque.contains(arr[right])) {
                // 包含则循环拿出前面的元素
                while(deque.pollFirst()!=arr[right]){}
            }
            deque.offerLast(arr[right]);    //添加元素
            max = Math.max(max, deque.size());
            right ++;
        }
        return max;
    }
全部评论

相关推荐

哞客37422655...:这就是真实社会,没有花里胡哨的安慰,让你感受到阶级分明,不浪费彼此时间。虽然露骨但是唉
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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