- 博客(33)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 分布式事务——9种解决方案的原理与分类
详细介绍常见的 9 种分布式事务解决方案的原理,并从多种角度对它们进行分类与归纳,分析它们的设计思路,找出共同点与不同点,窥见分布式事务的本质
2024-05-24 14:39:27
1014
原创 二叉树的非递归遍历(前序、中序、后序多种方法)
总结了二叉树的非递归遍历的前序、中序、后序三种方式的多种方法,同时实现了深度优先遍历与广度优先遍历的统一。
2022-09-19 02:37:38
640
1
原创 线程池核心知识点(通俗易懂 简单白话)
简单易懂的几句大白话,解释清楚 Java 线程池的核心知识点,包括线程池的好处、线程池的创建方式、线程池的类型、线程池的 7 大参数、线程池的运作原理等。
2022-08-27 02:19:06
299
原创 彻底理解Java线程的创建 深入源码 生动分析
深入浅出地分析了 Java 中线程创建的过程,深入源码,对与创建线程有关的类进行逐个分析,理清它们之间的联系与区别,最终得出结论,即“Java 中的线程创建方式有且只有一种,那就是 new 一个 Thread 对象,并给它一个 Runnable 类型的对象, Thread 对象负责启动线程, Runnable 对象负责执行线程”。......
2022-08-18 02:06:54
338
原创 单例模式详解(从懒汉式、饿汉式到完美的枚举式)
详细地介绍了单例模式,从饿汉式实现方式,到懒汉式实现方式及其线程安全问题与指令重排问题,将两种实现方式进行了对比,进而介绍了反射和序列化如何破坏普通的单例模式,最后介绍了完美的枚举实现方式,并解释了枚举实现方式的优势所在和能够防御反射与序列化的破坏的原因。...
2022-08-17 02:50:56
268
原创 堆的各种操作与堆排序 Java&Golang
本文以大顶堆为例,给出堆中各种常见的操作与堆排序的 Java 代码,并附带以面向对象原则实现的 Golang 版本的代码。
2022-07-26 00:30:41
166
原创 《剑指offer》所有题目解法思路与出现频率汇总
本文并不适用于初次学习这本书中的题目,而是适用于在已经做过这些题目之后来进行复习。同时,这里统计了每个题目在面试中出现的频率,可以根据情况分重要性进行复习。
2022-07-18 23:24:38
270
原创 下一个排列(双指针)
使用双指针解法,并在最后的反转步骤重用两个指针,使得空间开销最低。该解法也可在一些其他题目中作为工具函数使用,如在题目[剑指 Offer 38. 字符串的排列]中使用该方法要比使用普通的回溯解法简单很多。...
2022-07-14 20:12:28
109
原创 不用加减乘除做加法 从递归到迭代
该题目直接看最优的迭代解法很难看懂,因为没有一个递进理解的过程,所以需要先从简单的递归开始理解,然后再改进为更优的迭代解法。
2022-07-11 21:30:44
151
原创 圆圈中最后剩下的数字(约瑟夫环问题)
0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。...
2022-07-08 21:33:31
2447
原创 K个一组翻转链表 最易懂的递归与迭代解法
这个题目大部分答案非常复杂难懂,勉强看懂了也很难复现出来,复现出来也很难记住。这里先给出一个递归解法,简单易懂,容易记住,也容易实现;进而给出一个更优的迭代解法。
2022-07-07 16:15:20
254
原创 数据库三范式和BCNF范式的理解:生动举例
通过生动形象的例子理解三大范式、BCNF范式以及反范式化,简单易懂。本文用生活中易于理解的概念,直观地描述这些范式和它们的应用场景,同时也给出了相应的实际数据库案例。
2022-06-28 04:21:36
23289
22
原创 Java快速排序模板(多种pivot选取方法)
快速排序模板,简洁、好记。partition函数中的左右指针最后总是相等,因而鲁棒性强,可扩展性好,可在很多算法中复用。同时,给出可以随意更换pivot的选取方法的模板,只要改写findPivot()函数就可以随意更换不同的pivot的选取方法,具有很好的可扩展性。......
2022-06-23 23:14:17
547
原创 栈的压入、弹出序列 不用栈模拟的解法 空间复杂度O(1)
该题目大部分答案都是使用栈模拟的方法,但是这样需要额外使用一个栈,不仅需要 O(n) 的空间复杂度,还会因大量的入栈和出栈操作导致时间消耗很高。这里给出一个空间复杂度为 O(1) 的解法,只需要三个指针,直接在输入的数组上用三个指针模拟入栈与出栈,这样不仅额外空间消耗极少,而且指针操作的时间消耗也远小于使用栈模拟的方式,在 LeetCode 上的执行用时为 0 ms(栈模拟的方法大部分都是用时 1 ms)。...
2022-06-20 19:55:42
125
原创 给定N个物品的背包问题-动态规划
给定 NNN 个物品,所有物品的体积恰有 KKK 种 (K≤N)(K \leq N)(K≤N),第 iii 种物品的体积为 Vi(0<Vi<1)V_i (0 < V_i < 1)Vi(0<Vi<1) 且第 iii 种物品的个数为 Ni(1≤i≤K)N_i(1 \leq i \leq K)Ni(1≤i≤K),其中 N1+N2+⋯+Nk=NN_1 + N_2 + \dots + N_k = NN1+N2+⋯+Nk=N。现有无穷多个体积为 1 的箱子,要将这 NNN
2022-05-25 03:22:46
897
原创 二叉搜索树的后序遍历序列(辅助栈 最清晰易懂的可视化讲解)
二叉搜索树的后序遍历序列(辅助栈 最清晰易懂的可视化讲解) 从可视化角度进行分析,最清晰直白的思路,最简洁的代码实现
2022-05-11 02:05:44
3004
6
原创 PyCharm中项目上传到Linux服务器,出现ModuleNotFoundError: No module named ‘XXX’
PyCharm中项目上传到Linux服务器,出现ModuleNotFoundError: No module named ‘XXX’
2022-03-12 01:16:37
3644
1
操作系统核心知识点总结
2022-08-04
计算机网络核心知识点总结
2022-08-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人