LeetCode 第三题 Longest Substring Without Repeating Characters(最长非重复子串)
注意:窗口、哈希表的使用降低时间复杂度
代码如下:
public class Solution {
public int LengthOfLongestSubstring(string s) {
Dictionary<char,int> dic=new Dictionary<char,int>();
int i,j,len=0;
for(i=0,j=0;j<s.Length;j++){
if(dic.ContainsKey(s[j])){
i = Math.Max(dic[s[j]], i);
dic[s[j]] = j + 1;//更新重复值的索引
}
else
dic.Add(s[j],j+1);
len=Math.Max(len,j-i+1);
}
return len;
}
}