自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 算法训练营day28

代码参考liweiwei。

2024-04-30 22:53:46 127

原创 算法训练营day27

因为i是由 begin赋值的,那么当这层遍历 执行 path.addLast(candidates[i])时 选不到小于 begin索引 的值。什么时候使用 used 数组,什么时候使用 begin 变量?

2024-04-29 22:44:00 403

原创 算法训练营day25

在搜索过程中,**我们“剪掉”乐不满足约束条件的搜索分支,**避免许多无意义的尝试,从而提高了搜索效率。当算法在搜索过程中遇到某个状态无法继续前进或无法得到满足条件的解时,它会撤销上一步的选择,退回到之前的状态,并尝试其他可能的选择。回溯算法的本质是深度优先搜索算法,它尝试所有可能的解决方案直到找到满足条件的解。例题2:在二叉树中搜索所有值为 7 的节点,请返回根节点到这些节点的路径,能够找到所有可能的解决方案,并且在合理的剪枝操作下,具有很高的效率。:这类问题的目标是找到满足所有约束条件的解。

2024-04-27 22:24:25 546

原创 算法训练营day24

回溯是递归的副产品,只要有递归就会有回溯。

2024-04-26 23:06:18 369

原创 给2026年6月份的你一封信

不知道你是否已经在心仪的公司工作,但是我相信你会全力以赴,至少无愧于心。目标固然重要,但是最重要的,记得奥,最重要的,铁铁,好好睡觉,好好吃饭,好好健身,学会想学的东西,诶,还有一件事,平时有没有拍视频记录日常啊,一定要记得记录啊,整活也好,拍风景也好,耍帅也好,都是回忆,哈哈,到时候看到这些是否会觉得很好笑,肯定会觉得很好笑,因为你一直在路上啊,铁铁。

2024-04-26 08:52:24 92

原创 算法训练营day23

则该函数可以被编译器或解释器优化,使其在空间效率上与迭代相当。这种情况被称为尾递归(tail recursion)。

2024-04-25 21:43:33 866

原创 算法训练营day22

所以说,二叉搜索树的深度是非常影响查找/插入性能的,所以说并不常用,广泛使用的是平衡搜索树。常见的平衡搜索树有 红黑树,B- 树,B+ 树(还有 ACM/OI 大佬们爱的 treap,splay,SBT)等。比如 Java 里的 TreeMap,TreeSet 和 HashMap 中链表的树化都是用红黑树实现的,又比如 InnoDB 的索引存储就是 B+ 树实现的。迭代写法的空间复杂度是 O(1),递归写法由于递归调用时会使用方法栈,而方法栈的深度就是二叉搜索树的深度,所以最坏空间复杂度是 O(n)。

2024-04-24 21:57:14 273 1

原创 算法训练营day21

接下来,根据计数count与最大计数maxCount的比较,更新众数的结果数组resList和最大计数maxCount。如果count大于maxCount,则清空resList并将当前节点值添加进去,并更新maxCount为count;接着,根据resList中的众数,创建一个整型数组res,并将其返回作为结果。然后,通过与前一个节点的值进行比较,判断当前节点值出现的次数。如果当前节点与前一个节点的值不同,说明出现了一个新的值,将计数count重置为1;,计算相邻两个元素的差值,并将较小的差值更新到。

2024-04-23 22:44:16 404

原创 算法训练营day20

任选一棵树t1,将另外一棵树t2合并到t1上,会出现几种情况。注意递归的时传入函数为两个树对应的节点。

2024-04-22 22:06:48 457

原创 算法训练营day18

存储中序遍历的值与索引的映射,查找操作的时间复杂度为 O(1)。二叉树的最深最左侧的节点的值,涉及到最深 -> 联想到 层序遍历。注,本文方法只适用于“无重复节点值”的二叉树。为了提升效率,本文使用哈希表。先序遍历 + 路径记录。

2024-04-20 21:56:33 373

原创 算法训练营day17

【代码】算法训练营day17。

2024-04-19 21:22:13 236

原创 算法训练营day16

>求出高度/深度如果满二叉树的层数为h,则总节点数为:2^h - 1.那么我们来。

2024-04-18 22:25:10 320 1

原创 算法训练营day15

像这种较为固定思路的算法(层序遍历),理解之后建议背诵复现。层序遍历本质上属于广度优先遍历,也称广度优先搜索,这题乍一看挺唬人,节点数量越多越难处理。

2024-04-17 22:19:41 316 1

原创 算法训练营day14

【代码】算法训练营day14。

2024-04-16 21:42:03 324 2

原创 算法训练营day13

鄙人想到了开辟空间来保存最小值,使用的HashMap;K神用的是栈+逻辑优化。从使用角度来看,我们可以将“优先队列”和“堆”看作等价的数据结构。简单写一下堆的知识,便于理解优先队列,已经了解的朋友转到逻辑部分。堆:是一种满足特定条件的完全二叉树,主要可分为两种类型。堆作为完全二叉树的一个特例,具有以下特性。做完最小栈的题能更好的理解这道题。

2024-04-15 20:23:56 1141 1

原创 算法训练营day11

因为出现了对应关系,就联想想到了HashMap,但运算符作为value,代码用map.get()放到两个计算数字中间无法编译成功,就只能存储两个数字之间计算关系,又要引入函数式编程,下面代码简单看看了解一下就行。考虑到这只是三种括号的情况,如果是更多种情况匹配,代码维护非常麻烦,而这种代码在添加多种情况时只需在HashMap中添加对应key-value即可,拓展性比较强。涉及到字符串频繁变化时,要联想到 StringBuilder || StringBuffer。使用 + 号进行字符串拼接。

2024-04-13 18:20:59 1036

原创 算法训练营day10

参考链接​。

2024-04-12 21:23:04 339 1

原创 算法训练营day9_kmp

KMP算法以及Boyer-Moore算法

2024-04-11 20:35:32 937 1

原创 算法训练营day8

大家第一步想到的都是转换成字符数组,但是字符数组进行更改起来就比较麻烦。利用双指针和 一个临时变量解决(因为左右指针无法直接交换)这里推荐StringBuilder,一个可变的字符串对象。通过遍历来字符数组对应情况对应添加number还是原字符。需要解决的问题:两侧空格,单词之间多个空格,反转单词。基于反转字符一,这里叙述一下i的含义。

2024-04-10 21:55:00 305 1

原创 算法训练营day7

该题解好的点是讲清楚为什么采用两两分组,而不是一三或则三一分组来计算结果。例如,五数之和,复制到ide可运行看结果。

2024-04-09 18:40:57 607

原创 day05_Trapping_Rain_Water

参考链接 https://leetcode.com/problems/trapping-rain-water/solutions/1374608/c-java-python-maxleft-maxright-so-far-with-picture-o-1-space-clean-concise/若 maxLeft > height[left],则当前列蓄水 maxLeft - height[left],当时我就比较纠结右侧最高与当前列(height[left]) 之间的柱子难道不会影响该列的结果吗?

2024-04-08 21:00:35 411

原创 算法训练营day6

有些许类似之前环形链表二那道题,这里用的是“隐形环”,当计算过程中同一个数字出现两次时,由于每一次数字迭代的计算逻辑相同,那么这个数是不会达到 “1”,也就不是快乐数。进行for循环,如果map中存在 target - num[i],则返回当前索引和target - num[i]对应索引。计算快乐数逻辑,每次提取出个位,然后总体除以 10 去除 个位,不断遍历计算。两个集合 Set1,Set2,遍历其中一个数组加入到set1中。再以set大小创建一个新数组,遍历set加入到数组中返回即可。

2024-04-08 20:14:59 893

原创 算法训练营day4

两种解法都很值得学习,第二种解法可以增强对dummy节点的理解。

2024-04-06 21:19:40 392 1

原创 算法训练营day3

因为dummy永远指向头结点,而head随着遍历不断向后移动,pre也不断向后移动。但是要注意,要是删除最后一个节点,需要从头节点查找到倒数第第二个结点通过next指针进行删除操作,查找的时间复杂度是O(n)。通过设置虚拟节点来使删除所有节点的逻辑相同,pre.next = cur.next;结合上一个问题,使用虚拟前驱结点来使 处理所有节点的逻辑相同,更容易复现代码。链表的增添和删除都是O(1)操作,也不会影响到其他节点。每个节点包括数据域(data)和指针域(next)

2024-04-05 16:17:03 254 1

原创 算法训练营day2

确定平方后哪的值是最大或最小的?显然,找平方后最大值比较方便,使用双指针从数组两侧遍历,向结果数组中从后向前遍历赋值(从大到小)这里的代码简化 result[k–]值得学习。这里下侧 和右侧从上到下变化。,上下左右的边进行遍历时停止的条件要相同,要么左闭右开,要么左开右闭。这里的处理规则是拐角处的总是让一个空格给下一条边画。时间复杂度O(n),空间复杂度O(n)结合昨天学的二分法中的。

2024-04-04 19:23:28 265

原创 算法训练营day1

通过快慢指针来获得“删除”val对应的数组长度。学习了数组的基础知识。

2024-04-03 11:46:20 241 1

原创 Canal1.16配置

注意:Canal可以与MySQL安装在同一台服务器,也可以在同一台服务器,这里是和MySQL安装在同一台服务器上。修改instance 配置文件。

2023-06-03 16:18:01 234 1

原创 使用Maven集成mybatis时报错Invalid bound statement(not fuond)

使用Maven集成Mybatis时出现Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

2022-12-12 19:34:33 351

空空如也

空空如也

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

TA关注的人

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