栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

LeetCode链接:3. 无重复字符的最长子串 - 力扣(LeetCode)

思路:滑动窗口思想,定义一个set集合,left和right指向索引0的位置,如果right索引处的值不在set集合内则放入并执行right++和length++,如果right索引的值在set集合中,则移除set集合中left索引处的值,并执行left++,length--,最后与maxlength比较大小,比它大则赋值给maxlength

java代码:

class Solution {
    public int lengthOfLongestSubstring(String s) {
        char[] str = s.toCharArray();
        HashSet set = new HashSet<>();
        int length = 0;
        int maxlength = 0;
        int left = 0;
        int right = 0;

        while(right < s.length()){

            while(set.contains(str[right])){
                set.remove(str[left]);
                left++;
                length--;
            }
                
            set.add(str[right]);
            right++;
            length++;
            
            if(length > maxlength){
                maxlength = length;
            }
        }

        return maxlength;
        
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/973961.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号