LeetCode 3. 无重复字符的最长子串 c++
关于这道题的解法
今天我重刷这道题的时候发现比以前慢许多
我这次用的unordered_set 装下了遍历过元素 所以很慢
重点说之前的解法
现在看以前我自己的解法
看半天才看懂
class Solution { public: int lengthOfLongestSubstring(string s) { if(s.size()==0) return 0; if(s.size()==1) return 1; int max=0,i,j,cnt,p=0; for(i=1;i<s.size();++i){ cnt=1; for(j=p;j<i;++j){ if(s[i]!=s[j])++cnt; else { p=j+1; break; } } if(cnt>max)max=cnt; } return max; } };
这里外层循环下标是从 1 开始的
内层从0开始
这种解法的优点:
越到后面需要遍历的内存循环越少(以为在之前都被用变量p淘汰了)
2021-10-1212:48:41更新------------------------------------


浙公网安备 33010602011771号