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

用时29分09秒:

滑动窗口虽然不懂具体是什么概念,但是用到的应该是这个思路:

public int lengthOfLongestSubstring(String s) {
        int n = s.length();
        if(n<2) return n;
        int i =0,j=1,max_len=1;
        int count=1;
        char[] c = s.toCharArray();
        while(j<n){
            int k = i;
            for(;k<j;k++){
                if(c[k] == c[j]){
                    i = k+1;
                    max_len = Math.max(max_len,count);
                    count = j-i+1;
                    break;
                }
            }
            if(k == j){
                count ++;
            }
            j++;
        }
        return Math.max(max_len, count);
    }

 

 ——2020.8.5

 


    public int lengthOfLongestSubstring(String s) {
        int n = s.length();
        int i = 0,j = 0;
        char[] c = s.toCharArray();
        int len = 0;
        while (j<n){
            if(s.indexOf(c[j],i)==j){
                j++;
            }else{
                if(j-i>len){
                    len = j-i;
                }
                i = s.indexOf(c[j],i)+1;
            }
        }
        return Math.max(len,j-i);
    }

 

 自己居然看不太顺利自己之前写的思路,,,

新的办法虽然代码短,但是不及之前性能。

——2020.8.31

posted @ 2019-10-12 14:41  欣姐姐  阅读(195)  评论(0编辑  收藏  举报