LeetCode 3. Longest Substring Without Repeating Characters

 
 
public class Solution {
    public int lengthOfLongestSubstring(String s) {
        char [] cs=s.toCharArray();
        int count=0; //用于记录最大不重复字符的长度
        int k;
        if(cs.length==1)
        return 1;
        for(int i=0,j=1;j<cs.length;)
        {
            
        	k=j-1;
        	while(k>=i && cs[k]!=cs[j])
        	{
        	    k--;
        	}
        	if(k<i)
        	{
        	    int count4=j-i+1;
        	    count=count4>count? count4:count;
        	    j++;
        	}
        	else if(cs[k]==cs[j]) 
        	{
        	   int count1 =j-k;
        	   int count2=k-i+1;
        	   int count3=(count1>=count2)? count1:count2; //取count1、count2中最大的
        	   if(count3>=count){count=count3;} //将count更新为最大的
        	   i=k+1;
        	   j++;
        	}
        }
        return count;
    }
}


你可能感兴趣的:(Algorithm)