自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 字符串解码

直接上代码,外国的最高赞,跟着程序debug一遍就懂了。

2023-04-25 22:21:11 54

原创 spring事务传播

当前方法必须运行在自己的事务中,一个新的事务将被启动,如果存在当前事务,在执行该方法前,当前事务会被挂起。5、PROPAGATION_NOT_SUPPORTED:(不支持事务)以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。该方法不应该运行在事务中,如果存在当前事务,则将事务挂起,以非事务方式运行。如果当前事务不存在,那么就新建一个事务运行。事务之间有三种方式运行:融入运行(融入外界事务),挂起(将外面的事务挂起,运行里面的事务),嵌套(用mybatis实现)如果当前不存在事务,就以非事务执行。

2023-04-23 16:19:19 60

原创 算法之回溯算法

总结一下,我的代码跟他的代码执行次数一模一样,只是我的sum没有加入进参数,所以sum的累加是每次都进行的所以比较慢。在集合n中至多要从该起始位置 : n - (k - path.size()) + 1,开始遍历。注意这里的全局变量,要在加入集合时重新申请一个集合,也就是一个划新的内存给他用。为什么有个+1呢,因为包括起始位置,我们要是一个左闭的集合。还需要的元素个数为: k - path.size();已经选择的元素个数:path.size();进行剪枝操作,自己的比较腊鸡。这里先了解一下回溯算法。

2023-04-14 11:57:41 50

原创 算法之贪心算法

贪心算法(Greedy Alogorithm)又叫登山算法,它的根本思想是逐步到达山顶,即逐步获得最优解,是解决最优化问题时的一种简单但是适用范围有限的策略。贪心算法的原理是通过局部最优来达到全局最优,采用的是逐步构造最优解的方法。要选出最优解可不是一件容易的事,要证明局部最优为全局最优,要进行数学证明,否则就不能说明为全局最优。为了构造问题的解决方案,有一个候选集合C作为问题的可能解,问题的最终解均取自于候选集合C。随着贪心选择的进行,解集合不断扩展,直到构成一个满足问题的完整解。

2023-04-13 11:07:19 109

原创 算法之希尔排序

【代码】算法之希尔排序。

2023-04-12 15:15:41 36

原创 算法之插入排序

还有优化的空间,将最后的arr【end】 = cur。可以放在while循环之后执行,这样就只用执行一半。

2023-04-12 15:14:50 22

原创 深度优先搜索

【代码】深度优先搜索。

2023-04-11 11:29:35 29

原创 算法之动态规划2

今天不想写了,明天再说。

2023-04-10 20:37:08 29

原创 动态规划详解

定义出什么是“状态”,以及在该“状态”下的“值”后,就要找出不同的状态之间如何迁移――即如何从一个或多个“值”已知的 “状态”,求出另一个“状态”的“值”(递推型)。所有“状态”的集合,构成问题的“状态空间”。在数字三角形的例子里,一共有N×(N+1)/2个数字,所以这个问题的状态空间里一共就有N×(N+1)/2个状态。一个“状态”对应于一个或多个子问题, 所谓某个“状态”下的“值”,就是这个“状 态”所对应的子问题的解。如果问题的最优解所包含的 子问题的解也是最优的,我们就称该问题具有最优子结 构性质。

2023-03-24 16:44:17 676

原创 数据流中的中位数

采用一个链表存储这些数字,用一个指针mid一直指向中位数(如果为偶数指向第一个数),再采用一个标志flag来表示当前数组是偶数还是奇数,奇数为1,偶数为0。如果进入点大于中位数,则mid右移,如果进入点小于等于中位数,则mid左移,并同步更新flag。这个里面的判断太过于复杂,所以不建议用提升只有一点。一个数进入时通过链表选择合适地点进入。这个方法就是直接暴力用集合跑。

2023-03-24 16:23:38 40

原创 二叉搜索树与双向链表

4.在中序遍历途中,出栈时将cur指向当前出栈元素,将pre的right(后继)指向cur,cur的left(前继)指向pre,并将pre指向当前出栈节点。在中序遍历的途中,设置两个指针,一个pre指向新建链表当前的节点,cur指向当前要进入链表的节点。3.5为了防止指针指示错误,先将第一个节点找出来,用head指向它。5.cur或pre指向同一个元素,必定在循环完之后指向最后一个元素。创建一个head节点,让head指向第一个节点。创建一个新的链表最为方便,所以创建一个新链表。

2023-03-23 20:37:34 48

原创 栈的最小值,进出栈取最小值全部是O(1)

一定要注意,进站之后要用equals判断,用==判断出来,栈是两个不同的对象进站。

2023-03-23 16:53:06 32

原创 有环链表判断,返回链表中环的入口节点

采用哈希表去存储它的节点,如果有环,则判断哈希表中是否有这个元素,找到的第一个重复的元素,就是环的入口节点,如果节点走到最后,变成空指针,那一定没有环。3.遍历每一个节点,如果哈希表中不存在,就加入哈希表,如果存在就直接返回。1.创建哈希表,如果为空则直接返回null。4.重复3直至这个节点为空,返回对应节点。还有一种方法是快慢指针,用数学问题解决。2.将根节点入哈希表。

2023-03-23 16:18:27 42

原创 快排的java代码

【代码】快排的java代码。

2023-03-22 20:26:21 76

原创 二叉树的层序遍历

2.队头出列,将第一个数减一,将队头所有数全部进入队列,进入几个就将第二个数加几,用cnt去控制层数,如果第一个为0,则将两个数互换。前一个表示当前层数还有几个数还没有出队列,后面一个表示下一层有几个数。初始时将数组全部变成为0,同一时间数组中只有两个数字不为0。这道题要写出层来,所以用一个数组来记录层数。1.将roo装入队列,设置数组0号位为1。用一个队列来将二叉树全部装入。3.循环2直至队列为空。

2023-03-22 16:36:35 38

原创 二叉树后序遍历

2.左右孩子有一个被访问过,并且左右都为空进行退栈操作,否则进行进站。右孩子为空或访问过就退栈,退栈时进行访问。用一个指针t指向上一个访问过的节点。循环要点:先右孩子再左孩子进站。3.循环2直至栈为空。

2023-03-22 15:37:27 41

原创 二叉树的中序遍历

3.循环栈顶,直至找个一个右孩子,退栈时访问。循环不变量是将左孩子不断进站,右孩子进站。4.循环2.3直至栈为空。2.寻找左孩子一直进站。中序遍历是出栈时访问。

2023-03-22 10:49:24 41

原创 二叉树前序遍历

/循环栈顶元素有右孩子进入,没有就退栈。//将其左孩子一路进入。3.循环栈顶元素直至有右孩子进入,没有就退栈。2.将栈顶的左孩子一直入栈,直至没有左孩子。//根为空则直接将l返回。//使用list来接树。4.循环2.3直至栈顶为空。leetcode地址。

2023-03-22 10:19:50 82

原创 第一次作业(个人作业):阅读教材,提五个问题

2022-10-07 17:01:52 95

空空如也

空空如也

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

TA关注的人

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