Java后端
·2025-02-26离职进入交接期,不管事了,终于放松了,到点下班心情舒畅。
1.leetcode hot * 1 76. 最小覆盖子串 ,通过基础算法精讲03课程之后,按照自己思路也是做出俩了,双指针玩的越来越6了。具体思路:从0枚举右端点,当出现右端点的字符出现次数大于目标字符串时,说明满足覆盖串,统计左右端点距离,截个当前子串,缩小左边界直到不满足,继续枚举右端点,再次满足条件,比较原来的左右端点距离和当前的距离,小就覆盖原来的。直到结束。(这个只是通过,在时间复杂度和空间复杂度还有优化空间)
public String minWindow(String s, String t) {
int sLen = s.length();
int tLen = t.length();
int[] sCnt = new int[128];
int[] tCnt = new int[128];
int ansLeft = -1;
int ansRight = sLen;
int left = 0;
String ans = "";
// 统计t字符个数
for(int i=0;i<tLen;i++){
tCnt[t.charAt(i)]++;
}
for(int right=0;right<sLen;right++){
sCnt[s.charAt(right)]++; // 枚举右端点,加入窗口
while(check(sCnt,tCnt)){// 是否涵盖
if(right - left < ansRight - ansLeft){ // 找到更小的串
ans = s.substring(left,right+1);
ansRight = right;
ansLeft = left;
}
sCnt[s.charAt(left)]--; //
left++;// 左窗口右移
}
}
return ans;
}
public boolean check(int[] sCnt,int[] tCnt){
for(int i=0; i<128;i++){
if(tCnt[i] > sCnt[i]){
return false;
}
}
return true;
}
2.软考pv练习题练习,学过的知识点相关题通过率也是达到了80%。继续新知识点。
3.项目这块,继续rpc,学过鱼皮哥的rpc框架后再学这个冰河的感觉轻松很多,整个rpc框架的整体架构大差不差,今天过了数据传输协议和消息编解码,序列化器这块,最复杂的还是编解码的这些io操作,各种inputstream,outstream,这玩意怎么记得住(🙃,虽然鱼皮哥说过这是死代码,但是感觉自己写不出来有点无力。。。)。
4.健生恢复性训练,好久没练慢慢来。
5.英语口语练习。
6.修改简历,又忘记到脑后了。明天一定不能忘!!!
7.面试题复习开始。
8.云图库为框架,开改。
4
0
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
