class Solution { public: int lengthOfLongestSubstring(string s) {
int size = s.size(); if(size == 0)return 0;
int m=0; for(int l = 0;l<size;l++){ unordered_set<char> st; st.insert(s[l]); int r = l+1; while(r<size){ if(st.find(s[r]) != st.end()) break; st.insert(s[r]); r++; } m = max(m,r-l); }
return m;
} };
结果,果然也很暴力
1 2 3 4 5 6 7 8 9 10 11 12
执行用时: 732 ms , 在所有 C++ 提交中击败了 5.09% 的用户 内存消耗: 238.3 MB , 在所有 C++ 提交中击败了 4.99% 的用户 通过测试用例: 987 / 987
优化一下,如果右指针能到s尾部,直接跳出
1
if(r == size-1)break;
结果,好的,更久了靠
1 2 3 4 5 6 7 8 9 10 11 12
执行用时: 872 ms , 在所有 C++ 提交中击败了 5.09% 的用户 内存消耗: 237.2 MB , 在所有 C++ 提交中击败了 4.99% 的用户 通过测试用例: 987 / 987