无重复字符的最长子串-滑动窗口

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

滑动窗口题解过程
时间复杂度:O(n)

图片说明

java代码 :

    private static int lengthOfLongestSubstring(String s) {
        int ans = 0;
        Map<Character, Integer> map = new HashMap<>();
        for (int left = 0,i = 0; i < s.length(); i++) {
            char alpha = s.charAt(i);
            if (map.containsKey(alpha)) {
                left = Math.max(map.get(alpha) + 1, left);
            }
            ans = Math.max(ans, i - left + 1);
            map.put(alpha, i);
        }
        return ans;
    }
全部评论

相关推荐

代码不跑我跑_秋招版:北大杀完9✌杀,9✌杀完鼠鼠杀
你最希望上岸的公司是?
点赞 评论 收藏
分享
码农顶针:估计让你免费辅导老板孩子的学习
点赞 评论 收藏
分享
将不会再购买联想产品
Data_Seven:让他发一个拯救者过来 拯救一下你
投递联想等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务