6月
第一周
day1
class Solution {
public int lengthOfLongestSubstring(String s) {
char[] ch=s.toCharArray();
int n=ch.length;
int maxlen=0;
Map<Character,Integer> cnt=new HashMap<>();
for(int i=0,j=0;i<n;i++){
cnt.put(ch[i],cnt.getOrDefault(ch[i],0)+1);
while(j<=i && cnt.get(ch[i])>=2){
cnt.put(ch[j],cnt.get(ch[j])-1);
j++;
}
maxlen=Math.max(maxlen,i-j+1);
}
return maxlen;
}
}
知识点总结
- 滑动窗口:原本不重复,加入c重复,则重复的一定是c
- 反转链表:直接模拟即可
- 简单的select
- 去重关键字:distinct
day2
知识点总结
- LRU:链表+Hash,先覆盖一层针对链表操作的API,在写对应的方法
- 最大的第K个数:最小堆,或者快速选择算法
- 排序:
order by desc
(降序)