Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.
Thoughts:
这题很简单,hashtable用于判别是否发生重复,重复发生后比较此时子串是否比之前子串长,长的话保存current版本。hashtable清零,重复相同过程。 这题还以用array。
import java.util.Hashtable;
public class Solution {
public int lengthOfLongestSubstring(String s) {
char[] target = s.toCharArray();
int pre = 0;
Hashtable<Character,Integer> h = new Hashtable<Character, Integer>();
for(int i =0; i<target.length;i++){
if(!h.containsKey(target[i]))
h.put(target[i],i);
else{
pre = pre > h.size() ? pre : h.size();
i = h.get(target[i]);
h.clear();
}
}
return Math.max(pre, h.size());
}
}
2, 和最大的子序列
public int sum(int[] array){
int max = array[0];
int sum = array[0];
for(int i=1; i<array.length; i++){
sum = Math.max(sum+array[i], array[i]);
max = Math.max(max, sum);
}
return max;
}