美文网首页
剑指 Offer II 016. 不含重复字符的最长子字符串

剑指 Offer II 016. 不含重复字符的最长子字符串

作者: 漫行者_ | 来源:发表于2021-09-09 12:27 被阅读0次

    剑指 Offer II 016. 不含重复字符的最长子字符串

    注意本题中的包含空格也算在里面,因此采用声明数组128位来包含这些特殊的字符,保险的情况下可以声明成256

    采用快慢指针,注意快指针++,慢指针减少

    class Solution {
        public int lengthOfLongestSubstring(String str) {
            if(str == null || str.equals("")) return 0;
            int s = 0;
            int e = 0;
            int max = Integer.MIN_VALUE;
            int[] array = new int[128];
            while(e < str.length()) {
                while(array[str.charAt(e)] > 0) {
                    array[str.charAt(s)]--;
                    s++;
                }
                max = Math.max(max, e - s + 1);
                array[str.charAt(e)]++;
                e++;
            }
            max = Math.max(max, e - s);
            return max;
        }
    }
    

    相关文章

      网友评论

          本文标题:剑指 Offer II 016. 不含重复字符的最长子字符串

          本文链接:https://www.haomeiwen.com/subject/irpiwltx.html