题目

代码分析

使用到了hashmap,同时需要注意的是,我们需要一个pre,并且一直向前移动

代码实现

 public static int lengthOfLongestSubstring(String s) {
        char[] chas = s.toCharArray();
        HashMap<Character, Integer> map = new HashMap<>();
        int max = Integer.MIN_VALUE;
        int pre = -1;
        for (int i = 0; i < chas.length; i++) {
            if(map.get(chas[i]) != null&&map.get(chas[i])>pre)
            {
                pre=map.get(chas[i]);
            }
            max = Math.max(max, i - pre);
            map.put(chas[i], i);
        }
        return max;
    }

学习情况

1次