LeetCode-无重复字符的最长子串

Posted fyyxt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-无重复字符的最长子串相关的知识,希望对你有一定的参考价值。

记 无重复字符的最长子串

写了你妈2小时写出来的垃圾算法

    
     public static int lengthOfLongestSubstring(String s) {      
        char t[] = s.toCharArray();
        int count = 0;
        int max =0;
        
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        Map<Integer, Integer> map2 = new HashMap<Integer, Integer>();  //核心
        for(int i =0;i<s.length();i++) {
            if(map.get(t[i]-'a')==null) {
                map.put(t[i]-'a',i);
                map2.put(i,t[i]-'a');
                count++;
                
                if(count>max) {
                    max = count;
                }

                
            }else {
                
                count = i-map.get(t[i]-'a');  //核心
                System.out.println(map.get(t[i]-'a'));
                int k = map.get(t[i]-'a');                                          
                int temp = -1;   //核心清理
                for(int j =0; j<=k ;j++) {
                    if(map2.get(j)!=null) {
                        temp = map2.get(j);
                        map.remove(temp);
                        map2.remove(j);
                        map.put(t[i]-'a',i);
                        map2.put(i,t[i]-'a');
                        
                    }
                    temp = -1;
                }
            }
            System.out.println(count+"---"+i+"--"+t[i]);
        }
        System.out.println("--------------");
        return max;
    }

以上是关于LeetCode-无重复字符的最长子串的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 无重复字符的最长子串

LeetCode——无重复字符的最长子串

leetcode-无重复字符的最长子串

[LeetCode]无重复字符的最长子串

LeetCode 第3题 无重复字符的最长子串

[LeetCode] 无重复字符的最长子串