2021/1/17
刷题
通过前两个点算出斜率和截距,往后遍历看是不是符合就完事儿了,斜率无穷大就直接比较x
并查集,倒序遍历所有边,分别计算出除去当前边的其他所有边加入并查集后的连通分量,若为1(即该边为倒序的第一条多余边),则返回这条边
并查集,计算连通分量即可
暴力遍历:时间O(N^2),空间O(1);哈希表:时间O(N),空间O(N)
通过前两个点算出斜率和截距,往后遍历看是不是符合就完事儿了,斜率无穷大就直接比较x
并查集,倒序遍历所有边,分别计算出除去当前边的其他所有边加入并查集后的连通分量,若为1(即该边为倒序的第一条多余边),则返回这条边
并查集,计算连通分量即可
暴力遍历:时间O(N^2),空间O(1);哈希表:时间O(N),空间O(N)
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/6 | 1423. 可获得的最大点数 | 找出n-k长度的最小合连续子串,其余就是合最大子串 |
修复项目打包成jar包后application.yml无效的问题
部署项目,整理接口文档
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/8 | 162. 寻找峰值 | 二分递归,根据nums[i]和nums[i+1]确定往左递归还是往右 |
2021/2/8 | 978. 最长湍流子数组 | 滑动窗口 |
配置HTTPS图床,测试hugo的shortcodes,真有趣
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/9 | 992. K 个不同整数的子数组 | 「最多存在 K 个不同整数的子区间的个数」与「最多存在 K-1 个不同整数的子区间的个数」的差恰好等于「恰好存在 K 个不同整数的子区间的个数」 |
摸~
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/11 | 703. 数据流中的第 K 大元素 | 维护一个固定长度的优先队列,保证队列首一直是第K大的元素 |
回乡下了,时隔好几年又放了烟花,好耶!
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/13 | 448. 找到所有数组中消失的数字 | 原地修改,最后遍历找出结果 |
2021/2/13 | 剑指 Offer 33. 二叉搜索树的后序遍历序列 | 递归解决 |
昨晚总结了一下2020,希望2021能走得更远吧!
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/15 | 485. 最大连续1的个数 | 数组遍历 |
2021/2/16 | 561. 数组拆分 I | 从小到大排完序后,从零往后取偶数下标的数之和即是答案 |
2021/2/16 | 剑指 Offer 34. 二叉树中和为某一值的路径 | DFS+回溯 |
2021/2/17 | 566. 重塑矩阵 | 数组遍历,注意下标的转换 |
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/18 | 995. K 连续位的最小翻转次数 | 差分数组或者滑动窗口优化 |
2021/2/19 | 1004. 最大连续1的个数 III | 滑动窗口,找到最大长度,含0个数不超过K的连续子数组 |
2021/2/19 | 剑指 Offer 35. 复杂链表的复制 | 深拷贝,哈希表或者拼接裁剪 |
2021/2/19 | 剑指 Offer 36. 二叉搜索树与双向链表 | 中序遍历dfs |
2021/2/19 | 剑指 Offer 37. 序列化二叉树 | 层序遍历,包含二叉树完整信息 |
2021/2/19 | 剑指 Offer 38. 字符串的排列 | DFS+剪枝 |
2021/2/20 | 剑指 Offer 39. 数组中出现次数超过一半的数字 | 摩尔投票法 |
2021/2/20 | 697. 数组的度 | 遍历,保存每个数字出现次数、第一次出现和最后一次出现 |
2021/2/20 | 剑指 Offer 40. 最小的k个数 | 排序 |
2021/2/20 | 剑指 Offer 41. 数据流中的中位数 | 大根堆+小根堆 |
2021/2/20 | 剑指 Offer 42. 连续子数组的最大和 | 动态规划 |
学习总结JVM内存模型
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/21 | 1438. 绝对差不超过限制的最长连续子数组 | 滑动窗口+单调双端队列 |
2021/2/22 | 766. 托普利茨矩阵 | 遍历比较每一行的除最后一个,和下一行的除第一个 |
2021/2/23 | 剑指 Offer 43. 1~n 整数中 1 出现的次数 | 递归,搞清楚拆解公式 |
2021/2/23 | 1052. 爱生气的书店老板 | 滑动窗口,遍历 |
2021/2/23 | 剑指 Offer 44. 数字序列中某一位的数字 | 数学,计算位数 |
2021/2/23 | 剑指 Offer 45. 把数组排成最小的数 | 将数组转换为字符串数组后,对数组排序,按(x, y) -> (x + y).compareTo(y + x) |
2021/2/23 | 剑指 Offer 46. 把数字翻译成字符串 | 动态规划+滚动数组优化 |
2021/2/23 | 剑指 Offer 47. 礼物的最大价值 | 动态规划+原地修改减少空间复杂度 |
2021/2/23 | 剑指 Offer 48. 最长不含重复字符的子字符串 | 双指针+哈希表,滑动窗口 |
2021/2/23 | 剑指 Offer 49. 丑数 | 三指针动态规划 |
2021/2/23 | 剑指 Offer 50. 第一个只出现一次的字符 | 遍历,计数 |
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/24 | 剑指 Offer 51. 数组中的逆序对 | 归并排序求逆序对数量 |
2021/2/25 | 867. 转置矩阵 | 遍历 |
2021/2/26 | 1178. 猜字谜 | 状态压缩,枚举谜面所有子集(即可能答案) |
2021/2/27 | 395. 至少有 K 个重复字符的最长子串 | 分治+递归 |
2021/2/27 | 剑指 Offer 52. 两个链表的第一个公共节点 | 双指针,遍历到头后从另外一条链表开始遍历,相遇即找到答案 |
2021/2/27 | 剑指 Offer 53 - I. 在排序数组中查找数字 I | 二分找到左右区间,注意不要写成死循环QAQ |
日期 | 题目 | 思路或总结 |
---|---|---|
2021/2/28 | 896. 单调数列 | 遍历递减或递增 |
2021/2/28 | 剑指 Offer 53 - II. 0~n-1中缺失的数字 | 二分 |
2021/2/28 | 剑指 Offer 54. 二叉搜索树的第k大节点 | 二叉搜索树中序遍历倒序 |
2021/2/28 | 剑指 Offer 55 - I. 二叉树的深度 | DFS |
2021/2/28 | 剑指 Offer 55 - II. 平衡二叉树 | DFS |
2021/2/28 | 剑指 Offer 56 - I. 数组中数字出现的次数 | 利用亦或的性质 |
2021/2/28 | 剑指 Offer 56 - II. 数组中数字出现的次数 II | 统计二进制后每1位出现1的次数,如果是3n+1,则最后答案该位也为1,使用状态机降低空间消耗 |
2021/2/28 | 剑指 Offer 57. 和为s的两个数字 | 对撞双指针 |
2021/3/1 | 303. 区域和检索 - 数组不可变 | 前缀和 |
2021/3/2 | 304. 二维区域和检索 - 矩阵不可变 | 二维前缀和 |