五月18 本周计划:每天一篇面经 + MySQL + Redis 2h算法 : hot100 5/day 算法专项 labuladong 1.5h项目: 小哈书按模块推进 + 技术派 2h 算法:买卖股票系列问题使用动态规划:从最后一天开始推导给出场景如下:限制股票交易次数为K(一次买入+卖出为一次交易) 现在有如下状态转移方程: 1234dp[i][k][0] = Math.max(dp[i] 2025-05-18
五月15 MySQLcount(1) count(*) count(列名): InnoDB 引擎中,COUNT(1) 和 COUNT(*) 没有区别,都是⽤来统计所有⾏,包括 NULL。 如果表有索引,count(*)会走索引统计,count(1)也会被优化为count(*)。count(列名) 会统计列名非null的部分。 SQL 语句执行顺序:先执⾏ FROM 确定主表(ON 确定表连接条件),再执⾏ 2025-05-15
五月14 算法:239. 滑动窗口最大值思路:滑动窗口+双端队列。队列用于维护最大值,入队时判断当前值与队尾元素的大小,当前值大于队尾元素则移除队尾元素,再加入当前元素,否则直接加入当前元素。当达到窗口大小时,将队头元素移除。同时将队头元素加入答案 12345678for (int i =0; i < n; i ++) { while (!q.isEmpty() && 2025-05-14
5月13 算法:410 与 1011 为同一二分查找题板思路: 二者均为求数组分割为连续子数组后,多个连续子数组之和的最小值,连续子数组数已给出。二分:左边界即数组的最大值 右边界为数组累计和+1 target为数组分割个数搜索的值为划分区间个数:记个数为F(x),x为子数组的最大值。则可以得出以下格式: 12345678910111213f(int[] nums, int x) { in 2025-05-13
五月七日 关于八股:今天计划推进完成JVM部分并进行小结,JVM作为JAVA编程中比较重要的一个模块,主要涉及到的知识点有如下模块:类加载、运行时内存区、执行引擎。其中类加载部分主要涉及到类的生命周期、类的加载方式、双亲委派等内容。运行时内存区细分可分为堆、栈、方法区、PC、本地方法栈。关于内存部分的内容主要涉及对象的内存分配、对象的创建与销毁,JVM访问对象主要有两种方式:句柄与直接指针。关于内存溢出与内 2025-05-07
五月六日 算法部分:完成单调栈例题部分 496. 739. 503单调栈模板: 123456789101112131415161718int[] calculateGreaterElement(int[] nums) { int n = nums.length; // 存放答案的数组 int[] res = new int[n]; Stack<Integer> 2025-05-06
简记 关于算法:n数之和模板,主要是基于两数之和的改造,在两数之和的基础上做递归拆解子问题,每次加上循环的nums[i].。n数之和的简单思路:先对数组进行排序,使用双指针思路实现,将n数之和拆解为两数之和的模板进行递归,每次递归时添加一个子答案。 关于最长回文子串:简化问题:从字符串中心向两边遍历,实现双指针遍历效果,考虑两种情况回文子串为奇数长和偶数长,三者比较返回最大值即可。回文子串判断:l,r 2025-05-01
随笔 基于labuladong 网站review了链表和数组双指针部分,主要问题出现在反转链表部分(递归理解),双指针部分主要理解了n数之和部分。八股方面主要完成了 JVM 三色标记法和CMS、G1回收的流程和各自的优劣,主要是针对解决对象消失问题,一个采用了快照、一个采用增量。 2025-04-30
总结 摆烂的一天,人月神话阅读进度:2章,主要是一个关于焦油坑的故事和pm对人员规划和 项目预期之间的矛盾论。算法:数组部分的双指针及二维数组遍历部分,效果较差,花了两个小时,准备明天和链表部分一起review。关于新爱好花切:今天玩废了两幅牌,买了三幅新牌。熟悉了剪刀切,成功率不高,感觉动作发力点有问题,练起来无名指和小拇指有拉伸感而不是虎口,c切加强。看了看YouTube上的空难解说,关于日本和田机 2025-04-29