3.Longest Substring Without Repeating Characters

原创 2016年08月31日 13:38:58
Given a string, find the length of the longest substring without repeating characters.

最简单的解决方式,逐渐遍历

time:o(n^2)

space:o(n)

 public int lengthOfLongestSubstring(String s) {
        int len=s.length();
        int result=0;
        
        for(int i=0;i<len;i++){
            HashSet<Character> set=new HashSet<Character>();
            for(int j=i;j<len;j++){
                if(set.contains(s.charAt(j)))
                    break;
                else
                    set.add(s.charAt(j));
            }
            if(result<set.size())
                result=set.size();
            if(result>len-i)
                break;
        }
        
        return result;
    }



改进一点:

time: o(n)

space: o(n)

将每个字符及其顺序保存在map中,循环遍历,保留2个指针,一个指针指向当前位置i,一个指向开始保证从开始字符开始到当前字符没有出现过重复的j;若当前字符在之前出现过,则更新j,j应该是j和当前第i个字符在之前出现的位置的最大值;

public int lengthOfLongestSubstring(String s) {
        if(s==null||s.length()==0)
            return 0;
        int max=1;
        HashMap<Character,Integer> map=new HashMap<Character,Integer>();
        for(int i=0,j=0;i<s.length();i++){
            if(map.containsKey(s.charAt(i))){
                if(j<(map.get(s.charAt(i))+1))
                    j=map.get(s.charAt(i))+1;
            }
            map.put(s.charAt(i),i);
            if(max<(i-j+1))
                max=i-j+1;
        }
        return max;
    }


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[LeetCode - 滑动窗口] 3. Longest Substring Without Repeating Characters

1 问题 Given a string, find the length of the longest substring without repeating characters. Exa...

3. Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters. Examples: G...

LeetCode | 3. Longest Substring Without Repeating Characters

leetcode.com 3. Longest Substring Without Repeating Characters

LeetCode- 3. Longest Substring Without Repeating Characters

Description Given a string, find the length of the longest substring without repeating characters.E...

leetcode_3 - Longest Substring Without Repeating Characters

leetcode_3 : Longest Substring Without Repeating Characters标签(空格分隔): leetcode string twoPoints setGi...

LeetCode(3)--Longest Substring Without Repeating Characters

题目如下: Given a string, find the length of the longest substring without repeating characters. For ex...

LeetCode 3. Longest Substring Without Repeating Characters(线性处理, 哈希)

LeetCode 3. Longest Substring Without Repeating Characters(线性处理, 哈希) 1. 从左到右扫描字符串,读入每一位字符。当该位字符上一次出现...

【leetcode】【3】Longest Substring Without Repeating Characters

一、问题描述 Given a string, find the length of the longest substring without repeating characters. For e...

LeetCode#3. Longest Substring Without Repeating Characters

求最长子串(子串中没有重复元素)

LeetCode3. Longest Substring Without Repeating Characters(最长不重复子串)

题目链接:https://leetcode.com/problems/longest-substring-without-repeating-characters/ Given a ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)