首页 > 其他 > 详细

3. 无重复字符的最长子串

时间:2021-07-30 09:02:34      阅读:14      评论:0      收藏:0      [点我收藏+]
/**
     * 思想简单,用一个指针指向第二个重复的字符即可,然后判断每一段的大小,通过map保存没有重复字符的索引
     */
    public static int lengthOfLongestSubstring(String s) {
        int pre=0,maxlen=0;
        Map<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            if (map.containsKey(s.charAt(i))){
                //如果是abba这种类型的话这样遍历到a的时候就不正确了,取出来的值为0+1不符合提议所以,取最大值
                //pre = map.get(s.charAt(i))+1;
                pre = Math.max(map.get(s.charAt(i))+1,pre);
            }
            map.put(s.charAt(i),i);
            maxlen=Math.max(i-pre+1,maxlen);
        }
        return maxlen;
    }

 

3. 无重复字符的最长子串

原文:https://www.cnblogs.com/xiaoruirui/p/15077492.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!