用时29分09秒:
滑动窗口虽然不懂具体是什么概念,但是用到的应该是这个思路:
public int lengthOfLongestSubstring(String s) { int n = s.length(); if(n<2) return n; int i =0,j=1,max_len=1; int count=1; char[] c = s.toCharArray(); while(j<n){ int k = i; for(;k<j;k++){ if(c[k] == c[j]){ i = k+1; max_len = Math.max(max_len,count); count = j-i+1; break; } } if(k == j){ count ++; } j++; } return Math.max(max_len, count); }
——2020.8.5
public int lengthOfLongestSubstring(String s) { int n = s.length(); int i = 0,j = 0; char[] c = s.toCharArray(); int len = 0; while (j<n){ if(s.indexOf(c[j],i)==j){ j++; }else{ if(j-i>len){ len = j-i; } i = s.indexOf(c[j],i)+1; } } return Math.max(len,j-i); }
自己居然看不太顺利自己之前写的思路,,,
新的办法虽然代码短,但是不及之前性能。
——2020.8.31