3. Longest Substring Without Repeating Characters

来源:互联网 发布:清除mac上的个人信息 编辑:程序博客网 时间:2024/06/07 02:13

思路:是要找到无重复字母的最大子串  循环遍历时间复杂度太高  可以定义一个辅助数组;


 public int lengthOfLongestSubstring(String s) {                         int res = 0;//结果
                        int left = 0;//维持一个left指针  指向没有重复字母的子串的开始          int prev[] = new int[300];  //辅助数组 prev[i]代表字母i出现的位置                  for (int i = 0; i < 300; ++i)              prev[i] = -1;            for (int i = 0; i < s.length(); ++i) {              if (prev[s.charAt(i)] >= left)                  left = prev[s.charAt(i)] + 1;              prev[s.charAt(i)] = i;              if (res < i - left + 1)                  res = i - left + 1;          }          return res;      }  


0 0
原创粉丝点击