自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 资源 (1)
  • 收藏
  • 关注

原创 5、MYSQL-深入理解mysql事务隔离级别与锁机制

InnoDB在执行查询语句SELECT时(非串行隔离级别),不会加锁。但是update、insert、delete操作会加行锁。简而言之,就是读锁会阻塞写,但是不会阻塞读。而写锁则会把读和写都阻塞。

2024-04-23 00:04:30 772

原创 54、图论-实现Trie前缀树

主要是构建一个trie前缀树结构。1、next节点数组。

2024-04-22 23:43:35 194

原创 53、图论-课程表

遍历结束后,从入度为0的开始遍历。引文只有入度为0的节点没有先决条件。直到所有节点入度都为0.然后记录下来count和需要学习课程数相比如果相等表示可以。其实就是图的拓扑排序,我们可以构建一个图形结构,比如[0,1]表示1->0,对于0来说入度为+1。

2024-04-22 23:37:33 208

原创 52、图论-腐烂的橘子

第一步先找出所有腐烂的橘子,这些橘子会在上下左右进行感染,然后记录被感染的 橘子,之前感染过的句子不再使用,将新的感染的橘子收集,然后遍历让其上下左右依次感染,没做一次批量感染,时间加1。直到无法在搜集新的感染橘子的时候,判断感染橘子的总和和橘子的数量是否相等,如果相等返回最小分钟数,如果不相等,说明有些橘子无法被感染,返回-1。

2024-04-22 23:20:46 101

原创 4、MySQL-索引实战2

很多时候我们业务系统实现分页功能可能会用如下sql实现表示从表 employees 中取出从 10001 行开始的 10 行记录。看似只查询了 10 条记录,实际这条 SQL 是先读取 10010 条记录,然后抛弃前 10000 条记录,然后读到后面 10 条想要的数据。因此要查询一张大表比较靠后的数据,执行效率是非常低的。

2024-04-21 22:40:19 479

原创 51、图论-岛屿数量

这个解决方案通过DFS(深度优先搜索)来识别和计数所有的岛屿。每当找到一个未被访问的陆地单元格,就通过递归“感染”过程标记所有与之相连的陆地单元格,防止它们在后续的遍历中被重复计数。这种方法简单高效地解决了岛屿计数问题。return 0;i < N;return res;

2024-04-21 22:23:05 478

原创 50、二叉树-二叉树中最大的路径和

分别考虑每个节点作为路径中的转折点时可能的最大路径和,同时保证递归过程中更新全局最大值。通过递归地计算每个节点的最大单边贡献,并在每次递归中尝试更新包括该节点的全局最大路径和,这种方式确保了能够找到整棵树的最大路径和。

2024-04-21 18:51:37 479

原创 49、二叉树-二叉树的最近公共祖先

整个过程是一个自顶向下的搜索,然后利用递归的自底向上的特性,将找到的信息返回到上一层。这种方法主要是基于二叉树的后序遍历框架来实现的,即对于每个节点,先处理其所有子节点后再处理该节点。: 最终,递归的初始调用(从根节点开始的调用)将返回整个搜索的结果,即。递归深入每一个节点,尝试在该节点的左右子树中找到目标节点。这一步骤可以视为在树中向下深入,直到触及终止条件。: 对当前节点的左右子树进行递归调用,搜索。中的任何一个时,停止递归,返回当前节点。: 当到达叶子节点的子节点(即。

2024-04-21 18:37:02 304

原创 3、MYSQL-索引优化实战

1、MySQL支持两种方式的排序filesort和index,Using index是指MySQL扫描索引本身完成排序。index效率高,filesort效率低。2、order by满足两种情况会使用Using index。1) order by语句使用索引最左前列。2) 使用where子句与order by子句条件列组合满足索引最左前列。3、尽量在索引列上完成排序,遵循索引建立(索引创建的顺序)时的最左前缀法则。4、如果order by的条件不在索引列上,就会产生Using filesort。

2024-04-20 21:01:05 853

原创 48、二叉树-路径总和III

1、从根节点出发有多少种方案。2、从左节点出发有多少种方案。3、从右节点出发有多少种方案。

2024-04-20 20:18:53 211

原创 47、二叉树-从前序与中序遍历序列构造二叉树

前序:头 左 右后序:左 头 右遍历。

2024-04-20 19:53:59 171

原创 46、二叉树-二叉树展开为链表

1、使用先序遍历每个节点 放入集合中,然后遍历集合,左子树为null,右子树为下一个节点。

2024-04-20 11:57:02 136

原创 3、MYSQL-一条sql如何在MYSQL中执行的

大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。

2024-04-19 23:55:00 826

原创 45、二叉树-二叉树的右视图

【代码】45、二叉树-二叉树的右视图。

2024-04-19 23:35:36 284

原创 44、二叉树-二叉搜索树中第K小的元素

中序遍历 天然的从左到头再到右,升序。所以不用排序直接拿集合第k-1个数即可。原理同上,只是不用集合了,用常量计数。

2024-04-19 23:27:22 278

原创 43、二叉树-验证二叉搜索树

所以对于当前节点来说:我的左节点要小于我,我的右节点要大于我,我左节点,右节点也是二叉搜索树。如果当前节点为null,直接返回。

2024-04-19 22:55:40 136

原创 2、MYSQL-Explain工具介绍

使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执 行这条SQL注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中。

2024-04-19 00:20:18 635

原创 42、二叉树-将有序数组转换为二叉搜索树

既然数组已经有序,所以我们可以直接从中位数开始建立当前节点,那么左边就是我的左子树,右边就是我的右子树,依次递归。什么是平衡二叉搜索树:对于每个节点来说我左子树深度和我的右子树深度差值不能大于1。什么是二叉搜索树:对于每个节点来说,我的左节点小于我,我的有节点大于等于我。

2024-04-19 00:03:18 114 1

原创 41、二叉树-二叉树的层序遍历

层序遍历就是从左到右依次遍历。这个时候就可以使用队列的方式。例如先把头节点入队,然后遍历开始,首先计算队列长度,第一层,长度为了,遍历一次,依次出队,头结点出队,然后头结点的左右子节点入队。再次遍历,队列长度为2,在出队入队,队列长度为4。这样每次每次遍历都是把当层的所有节点轮询完成,然后每个节点的左右节点在入队,完成下一层的关联。

2024-04-18 23:50:43 242

原创 40、二叉树-二叉树的直径

最长路径,有两种情况,第一种经过根节点的最长路径,第二次不经过根节点的最长路径。那么不经过根节点的最长路径有max(左子树,右子树)得出,然后在和经过根节点的最长路径相比。

2024-04-18 23:41:36 107 1

原创 39、二叉树-对称二叉树

复制出一个二叉树b,加上原二叉树为a。

2024-04-18 00:28:30 196

原创 38、二叉树-反转二叉树

对于当前节点来说就是我的左右子树交换,然后进行递归即可。采用层序遍历,每个节点的左右子树交换。

2024-04-18 00:18:41 202

原创 37、二叉树-二叉树的最大深度

第一种方式递归,当前节点最大深度=max(左子树的最大深度,右子树的最大深度)+1。

2024-04-17 23:48:41 203

原创 1、MYSQL系列-深入理解Mysql索引底层数据结构与算法

索引是帮助MySQL高效获取数据的排好序的数据结构。

2024-04-16 23:54:05 242

原创 36、二叉树-二叉树的中序遍历

二叉树的遍历可以有 前序,中序,后序,层序遍历。

2024-04-16 23:39:05 137

原创 35、链表-LRU缓存

首先要了解LRU缓存的原理,首先定下容量,每次get请求和put请求都会把当前元素放最最前面,如果超过容量那么尾部元素就被移除,所以最近最少使用的元素会被优先移除,保证热点数据持续存在。

2024-04-16 23:24:56 589 1

原创 34、链表-合并K个升序链表

3、第三中思路就比较巧妙了,可以使用小根堆,每次弹出堆顶,最小值,然后弹出后当前链表指向下一个节点,再压入堆中。1、直接全部放入集合中,然后排序,在进行构造节点返回。2、使用归并排序的方式,两两排序合并,最后合并大的。

2024-04-16 23:16:15 388

原创 6、JVM-JVM调优工具与实战

JVM调优

2024-04-15 23:51:24 1031

原创 33、链表-排序链表

首先排序可以使用集合将所有节点放入集合中,然后再根据每个节点值进行排序。这个可以很容易做到,不再赘述。

2024-04-15 23:16:56 173

原创 32、链表-随机链表的复制

下一个节点是有规律的,但是随机节点不是你线性去复制就可以得到,这个地方就可以使用map来记录,首先遍历每个节点将他的值都记录下来,然后在进行复制。每一个节点都有两个成员变量,1、下一个节点 2、随机节点。

2024-04-15 23:12:05 120

原创 31、链表-K个一组反转链表

首先知道如何反转链表,其次找出每组的开始节点和结束节点,然后对于不足与k个的链表保持原状。

2024-04-15 23:02:49 244

原创 5、JVM-G1详解

间再怎么低也得有个限度。-XX:G1HeapWastePercent(默认5%): gc过程中空出来的region是否充足阈值,在混合回收的时候,对Region回收都是基于复制算法进行的,都是把要回收的Region里的存活对象放入其他Region,然后这个Region中的垃圾对象全部清理掉,这样的话在回收过程就会不断空出来新的Region,一旦空闲出来的Region数量达到了堆内存的5%,此时就会立即停止混合回收,意味着本次混合回收就结束了。

2024-04-14 23:04:13 803

原创 30、链表-两两交换链表

放入集合中两两交换,然后再重新构建链表可以解决。

2024-04-14 22:37:49 276

原创 29、链表-删除链表的倒数第N个结点

首先找到倒数第N个结点。

2024-04-14 22:07:37 130

原创 28、链表-两数相加

【代码】28、链表-两数相加。

2024-04-14 22:00:45 161

原创 4、jvm-垃圾收集算法与垃圾收集器

当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次收集都会有大量对象(近99%)死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标记-清除”或“标记-整理”算法进行垃圾收集。

2024-04-13 22:50:04 959

原创 27、链表-合并两个有序链表

【代码】27、链表-合并两个有序链表。

2024-04-13 21:52:31 393

原创 26、链表-环形链表II

这道题就是判断链表中是否有环,首先使用集合肯定可以快速地解决,比如通过一个set集合遍历,如果遍历过程中有节点在set中已经存在那么说明存在环。第二种方式就是通过快慢指针方式寻找环。

2024-04-13 21:49:02 158

原创 25、链表-环形链表

第二种方式就是通过快慢指针方式寻找环。具体思路就是一个慢指针每次直走一步,一个快指针每次都两步,如果有环,那么快指针早晚会追上慢指针,如果没有环,那么到快慢指针为null的时候,就退出了。这道题就是判断链表中是否有环,首先使用集合肯定可以快速地解决,比如通过一个set集合遍历,如果遍历过程中有节点在set中已经存在那么说明存在环。

2024-04-13 17:31:06 177

原创 3、JVM对象的创建于内存分配原理

大量的对象被分配在eden区,eden区满了后会触发minor gc,可能会有99%以上的对象成为垃圾被回收掉,剩余存活的对象会被挪到为空的那块survivor区,下一次eden区满了后又会触发minor gc,把eden区和survivor区垃圾对象回收,把剩余存活的对象一次性挪动到另外一块为空的survivor区,因为新生代的对象都是朝生夕死的,存活时间很短,所以JVM默认的8:1:1的比例是很合适的,让eden区尽量的大,survivor区够用即可。而在JAVA中对象就是可以被进一步分解的聚合量。

2024-04-13 00:30:23 839

单片机计算器

简述单片机的计算器的代码和仿真文件。便于学生下载学习。

2015-12-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除