https://leetcode.com/problems/longest-substring-without-repeating-characters/
这道题用的方法是在LeetCode中很常用的方法,对于字符串的题目非常有用。 首先brute force的时间复杂度是O(n^3), 对每个substring都看看是不是有重复的字符,找出其中最长的,复杂度非常高。优化一些的思路是稍微动态规划一下,每次定一个起点,然后从起点走到有重复字符位置,过程用一个HashSet维护当前字符集,认为是constant操作,这样算法要进行两层循环,复杂度是O(n^2)。
public static int lengthOfLongestSubstring(String s) {
int len = s.length();
int subStringLen = 0;
Set<Character> set = new HashSet<>();
for (int i = 0; i < len; i++) {
for (int j = i; j < len; j++) {
if (!set.contains(s.char