3. Longest Substring Without Repeating Characters


暴力

class Solution {
 public int lengthOfLongestSubstring(String s) {
		int the_max = 0;
		HashSet<Character> hs = new HashSet<Character>();
		for (int i = 0; i < s.length(); i++) {
			hs.clear();
			int y = i;
			while ( y < s.length() ) {
				if ( hs.contains(s.charAt(y)))
					break;
				else {
					hs.add(s.charAt(y));
					y++;
				}
			}
			the_max = Math.max(hs.size(), the_max);
			hs.clear();
			
		}
		return the_max;
	}
}

第二种解法 双指针做法

class Solution {
 public int lengthOfLongestSubstring(String s) {
			int the_max = 0;
			HashSet<Character> hs = new HashSet<Character>();
			for(int i = 0,j =0 ; i < s.length() ; i++) {
				while(hs.contains(s.charAt(i))) {
					hs.remove(s.charAt(j));
					j++;
				}
				hs.add(s.charAt(i));
				the_max = Math.max(i-j+1,the_max);
			}
	        hs.clear();
			return the_max;
		}
}
原文地址:https://www.cnblogs.com/cznczai/p/11331790.html