- 博客(244)
- 资源 (6)
- 收藏
- 关注
原创 2023第一篇
在这里先祝大家新年快乐感想2022年大半年都是浑浑噩噩的,文章也在五月份左右停更。自己私人生活原因占了大部分吧,没想明白自己的人生,没理清以后要怎么生活,每天想着的是怎么安逸、舒服的混过一天。迎来2023工作第一天,公司一句“状态不好”,我被裁员了,人生第一次,不知道该欢喜还是失落本以为做好自己本职工作,能舒服的混到明年开春,然后找新工作换个环境,但公司比我还快。其实换新工作的想法一直都有的,公司...
2023-01-04 18:40:46
262
1
原创 spring面试整理
AOP 面向切面编程,spring主要是通过 JDK 和 cglib 代理对象实现。spring aop 主要运用在事务、日志、异常处理。通过在代码前后做增强,实现业务逻辑的隔离,提高代码的模块化
2022-08-10 15:17:05
243
原创 zookeeper面试整理
Zookeeper 为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得Zookeeper 不能用于存放大量的数据,每个节点的存放数据上限为 1M
2022-08-10 15:15:37
237
原创 分布事务和分布式锁
Saga是一个长活事务,可被分解成可以交错运行的子事务集合,每个子事务有相应的执行模块和补偿模块,当saga事务中的任意一个本地事务出错了,可以通过调用相关事务对应的补偿方法恢复,达到事务的最终一致性。二阶段提交协议(Two-phase Commit,即 2PC)是常用的分布式事务解决方案,即将事务的提交过程分为两个阶段来进行处理:准备阶段和提交阶段。三阶段提交协议,是二阶段提交协议的改进版本,与二阶段提交不同的是,引入超时机制。同时在协调者和参与者中都引入超时机制。...
2022-08-08 14:19:17
423
原创 题目地址(138. 复制带随机指针的链表)
题目地址(138. 复制带随机指针的链表)https://leetcode.cn/problems/copy-list-with-random-pointer/题目描述给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原
2022-05-27 15:02:40
116
1
原创 题目地址(140. 单词拆分 II)
题目地址(140. 单词拆分 II)https://leetcode.cn/problems/word-break-ii/题目描述给定一个字符串 s 和一个字符串字典 wordDict ,在字符串 s 中增加空格来构建一个句子,使得句子中所有的单词都在词典中。以任意顺序 返回所有这些可能的句子。注意:词典中的同一个单词可能在分段中被重复使用多次。 示例 1:输入:s = "catsanddog", wordDict = ["cat","
2022-05-27 14:23:48
98
原创 题目地址(218. 天际线问题)
题目地址(218. 天际线问题)https://leetcode.cn/problems/the-skyline-problem/题目描述城市的 天际线 是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回 由这些建筑物形成的 天际线 。每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:lefti 是第 i 座建筑物左边缘的 x 坐标。righti 是第 i
2022-05-27 11:56:44
123
原创 题目地址(54. 螺旋矩阵)
题目地址(54. 螺旋矩阵)https://leetcode.cn/problems/spiral-matrix/题目描述给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,1
2022-05-27 10:34:14
89
原创 题目地址(227. 基本计算器 II)
题目地址(227. 基本计算器 II)https://leetcode.cn/problems/basic-calculator-ii/题目描述给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 示例 1:输入:s = "3+2*2"输出:7示例 2:
2022-05-26 15:46:08
72
原创 题目地址(149. 直线上最多的点数)
题目地址(149. 直线上最多的点数)https://leetcode.cn/problems/max-points-on-a-line/题目描述给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1:输入:points = [[1,1],[2,2],[3,3]]输出:3示例 2:输入:points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4
2022-05-26 14:51:49
86
原创 基础篇:java GC 总结,建议收藏
垃圾标记算法垃圾回收算法major gc、minor gc、full gc、mixed gc 又是什么,怎么触发的垃圾回收器的介绍Safe Point 和 Safe Region什么是 TLAB 和 PLAB ?CMS、G1 新生代的 GC 如何避免全堆扫描CMS 和 G1 为了防止并发时的漏标分别用了什么手段什么是 logging write barrierCMS 常见...
2022-05-25 10:20:51
202
原创 题目地址(395. 至少有 K 个重复字符的最长子串)
题目地址(395. 至少有 K 个重复字符的最长子串)https://leetcode.cn/problems/longest-substring-with-at-least-k-repeating-characters/题目描述给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。 示例 1:输入:s = "aaabb", k = 3输出:3解释:最长子串为 "aaa" ,其中 'a'
2022-05-25 10:13:38
69
原创 基础篇:java GC 总结,珍藏版
垃圾标记算法垃圾回收算法major gc、mini gc、full gc、mixed gc 又是什么,怎么触发的垃圾回收器的介绍Safe Point 和 Safe Region什么是 TLAB 和 PLAB ?CMS、G1 新生代的 GC 如何避免全堆扫描CMS 和 G1 为了防止并发时的漏标分别用了什么手段什么是 logging write barrierCMS 常见问题GC 事件和日志分析JVM 常用参数汇总关注公众号,一起交流:潜行前行1 垃圾标记算法引用计算法引.
2022-05-24 10:18:11
178
原创 题目地址(315. 计算右侧小于当前元素的个数)
题目地址(315. 计算右侧小于当前元素的个数)https://leetcode.cn/problems/count-of-smaller-numbers-after-self/题目描述给你一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例 1:输入:nums = [5,2,6,1]输出:[2,1,1,0] 解
2022-05-23 19:52:31
137
原创 题目地址(166. 分数到小数)
题目地址(166. 分数到小数)https://leetcode.cn/problems/fraction-to-recurring-decimal/题目描述给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回 任意一个 。对于所有给定的输入,保证 答案字符串的长度小于 104 。 示例 1:输入:numerator = 1
2022-05-23 16:56:42
116
原创 题目地址(169. 多数元素)
题目地址(169. 多数元素)https://leetcode.cn/problems/majority-element/题目描述给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1:输入:nums = [3,2,3]输出:3示例 2:输入:nums = [2,2,1,1,1,2,2]
2022-05-23 16:37:10
133
原创 题目地址(127. 单词接龙)
题目地址(127. 单词接龙)https://leetcode.cn/problems/word-ladder/题目描述字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> ... -> sk:每一对相邻的单词只差一个字母。 对于 1 <= i <= k 时,每个&nbs
2022-05-23 16:25:37
73
原创 题目地址(230. 二叉搜索树中第K小的元素)
题目地址(230. 二叉搜索树中第K小的元素)https://leetcode.cn/problems/kth-smallest-element-in-a-bst/题目描述给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 1:输入:root = [3,1,4,null,2], k = 1输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1]
2022-05-23 12:49:27
56
原创 题目地址(4sum-ii/“>454. 四数相加 II)
题目地址(4sum-ii/">454. 四数相加 II)https://leetcode.cn/problems/4sum-ii/题目描述给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0 示例 1:输入:nums1 = [1,2]
2022-05-23 11:54:52
92
原创 题目地址(131. 分割回文串)
题目地址(131. 分割回文串)https://leetcode.cn/problems/palindrome-partitioning/题目描述给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。 示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]] 提示:
2022-05-23 10:29:51
59
原创 题目地址(130. 被围绕的区域)
题目地址(130. 被围绕的区域)https://leetcode.cn/problems/surrounded-regions/题目描述给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' ,找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。 示例 1:输入:board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]输出:[["X"
2022-05-21 12:02:24
64
原创 题目地址(324. 摆动排序 II)
题目地址(324. 摆动排序 II)https://leetcode.cn/problems/wiggle-sort-ii/题目描述给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。你可以假设所有输入数组都可以得到满足题目要求的结果。 示例 1:输入:nums = [1,5,1,1,6,4]输出:[1,6,1,5,1,4]解释:[1,4,1,
2022-05-19 17:07:46
62
原创 题目地址(334. 递增的三元子序列)
题目地址(334. 递增的三元子序列)https://leetcode.cn/problems/increasing-triplet-subsequence/题目描述给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。
2022-05-19 15:57:48
69
原创 题目地址(328. 奇偶链表)
题目地址(328. 奇偶链表)https://leetcode.cn/problems/odd-even-linked-list/题目描述给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。你必须在 O(1) 的额外空间复杂度和 O(n)&n
2022-05-19 15:41:18
54
原创 题目地址(8. 字符串转换整数 (atoi))
题目地址(8. 字符串转换整数 (atoi))https://leetcode.cn/problems/string-to-integer-atoi/题目描述请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终
2022-05-19 14:43:54
66
原创 题目地址(378. 有序矩阵中第 K 小的元素)
题目地址(378. 有序矩阵中第 K 小的元素)https://leetcode.cn/problems/kth-smallest-element-in-a-sorted-matrix/题目描述给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。你必须找到一个内存复杂度优于 O(n2) 的解决方案。 示例 1:输
2022-05-19 13:58:52
58
原创 题目地址(329. 矩阵中的最长递增路径)
题目地址(329. 矩阵中的最长递增路径)https://leetcode.cn/problems/longest-increasing-path-in-a-matrix/题目描述给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。 示例 1:输入:matrix = [[9,9,4],[6,6,8],[2,1,
2022-05-19 13:07:48
54
原创 题目地址(124. 二叉树中的最大路径和)
题目地址(124. 二叉树中的最大路径和)https://leetcode.cn/problems/binary-tree-maximum-path-sum/题目描述路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。 示例 1:输入:root = [1,2,3]输出:6
2022-05-13 16:51:17
74
原创 题目地址(538. 把二叉搜索树转换为累加树)
题目地址(538. 把二叉搜索树转换为累加树)https://leetcode.cn/problems/convert-bst-to-greater-tree/题目描述给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点
2022-05-13 16:32:01
73
原创 题目地址(1/“>380. O(1) 时间插入、删除和获取随机元素)
题目地址(1/">380. O(1) 时间插入、删除和获取随机元素)https://leetcode.cn/problems/insert-delete-getrandom-o1/题目描述实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时
2022-05-13 15:57:59
66
原创 题目地址(384. 打乱数组)
题目地址(384. 打乱数组)https://leetcode.cn/problems/shuffle-an-array/题目描述给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是 等可能 的。实现 Solution class:Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[] shuffle() 返回数组随机打乱后的结果 示例 1:输入
2022-05-13 14:33:01
54
原创 289. 生命游戏
生命游戏根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态: 1 即为 活细胞 (live),或 0 即为 死细胞 (dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;如果活.
2022-05-13 14:14:43
53
原创 题目地址(437. 路径总和 III)
题目地址(437. 路径总和 III)https://leetcode.cn/problems/path-sum-iii/题目描述给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 示例 1:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], t
2022-05-13 12:01:13
65
原创 题目地址(560. 和为 K 的子数组)
题目地址(560. 和为 K 的子数组)https://leetcode.cn/problems/subarray-sum-equals-k/题目描述给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 示例 1:输入:nums = [1,1,1], k = 2输出:2示例 2:输入:nums = [1,2,3], k = 3输出:2 提示:1 <=
2022-05-13 11:41:23
168
原创 304. 二维区域和检索 - 矩阵不可变
二维区域和检索 - 矩阵不可变给定一个二维矩阵 matrix,以下类型的多个请求:计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。实现 NumMatrix 类:NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化int sumRegion(int row1, int col1, int row2, int col2) 返回 左上角 (row1, col1) 、右下角 (row2, c.
2022-05-13 11:32:40
69
spring flux 官方英文文档
2020-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人