题目
我设置了两个游标pq记录左右边界,
我这样写p每次只能位移一个单位,进行了一些重复的操作
怎样才能记录下来已经扫描过的不重复子串 提高效率?
class Solution { public int lengthOfLongestSubstring(String s) { int ret = 0; int p = 0, q = 0; while (q < s.length()) { int length = 0; HashSet<Character> set = new HashSet<>(); for (; q < s.length(); q++) { if (!set.contains(s.charAt(q))) { set.add(s.charAt(q)); length++; } else { ret = length > ret ? length : ret; p++; q = p; break; } ret = length > ret ? length : ret; } } return ret; } }