- 博客(11)
- 收藏
- 关注
原创 事务的传播机制/冒泡机制 propagation
需要事务,有事务则使用已有的,如果没有则创建一个新的,用在写操作上。支持上层事务,有事务则支持,无事务则不做任何处理。若当前有事务,则以嵌套的方式执行事务,若没有执行REQUIRED。必须外部提供事务,若没有则抛出异常。无论是否有事务都创建一个新事务。不支持事务,有事务则抛出异常。不支持事务,如果有事务则挂起。
2024-08-06 22:46:03
473
原创 事务的四大特性和隔离级别
可重复读:mysql InnoDB默认 可能导致幻读。幻读:事务A重复读的数据被另一个事务改了,但事务A看不到。读未提交:可能导致脏读。一个事务能看到另一个事务的数据未提交的数据,若另一个事务提交失败,则导致脏读。
2024-08-06 22:41:54
483
原创 Mybatis一级缓存与二级缓存
当mydatis需要关联查询时,会使一条sql语句附加n条关联查询语句,即1+n问题,为了解决这个问题mybatis提供了延迟加载和缓存机制,本节讲缓存机制。当不开启延迟加载时,1+n条sql语句同时发送至数据库,这时n+1条sql语句是在同一个会话当中,一级缓存自动生效,即相同的sql语句只会执行一次。
2024-08-05 21:28:53
821
原创 Java六种单例模式
确保一个类只有一个实例,并提供该实例的全局访问点。这样做的好处是:有些实例,全局只需要一个就够了,使用单例模式就可以避免一个全局使用的类,频繁的创建与销毁,耗费系统资源。
2024-08-05 21:21:23
313
原创 n-皇后问题的对角线与反对角线的坐标映射
此时若我们从三个数据中找出一个公式且公式的结果是相同的就可以当作我们来判断任意两个点是否在同一条对角线上的依据,不难看出y - x恒等于b,那我们就可以用一个bool数组维护x-y的值,若bool[y - x] = true;说明此对角线上已经有值,则不能放在该点,需要特殊注意的是,若b为负数会导致数组越界,此时要加上一个场数n使得结果恒大于0,即y - x + n;我们假设两个点在一个 y = kx + b上的直线上,当k = 1则线上的点都在一条对角线上,当k = -1则线上的点都在反对角线上,
2024-07-27 22:04:48
575
原创 快速幂速通
当我们要手动实现一个pow(x,n)函数的时候,一般做法是将x迭代n次,每次res*=x,最后res便是答案,可若n的值过长,在竞赛或项目中被卡时间,我们就需要优化这种做法,这种做法就叫做快速幂,或者反复相乘法。
2024-07-27 21:15:31
404
原创 完全背包问题一纬状态是怎么推导出的,结果为什么和01背包问题转移方程如此类似!
这个问题相信对于很多小伙伴来说不难,只是01背包问题的加强版,01背包只能选一个,完全背包可以选无数个,想解决这个问题并不难,只需要再嵌套一层循环,将每个选法的方案数纪录下来即可,代码实现如下。但是,如果题目对于时间有要求,这种三重循环的做法未免太过于暴力,如果n为1000的话时间复杂度高达10^9,显然会超时,那么我们该如何优化呢?
2024-07-22 21:19:44
603
原创 为什么01背包问题可以从二维转换成一纬
题目如图题目来自acwing01背包问题是一个十分经典的dp问题,相信点进这个题目的小伙伴已经对这个问题有了进本的认识,原理我们不多赘述,上正文。
2024-07-22 20:08:04
878
原创 单一括号序列问题(两个条件)
第二个条件题目已经满足,只需要在深搜时判断第一个条件是否满足即可,代码如下。只要满足这两个条件,括号序列就是合法,拿leetcode22题为例子。要想某单一括号序列合法只需要满足两个条件。1、任意前缀左括号数量大于等于右括号数量。2、左右括号数量相等。
2024-07-21 00:15:00
204
原创 优化版的Dijkstra和spfa写法相似的原因以及区别
众所周知,Dijkstra先将所有节点到起点的距离设为正无穷,再将起点到起点的距离设为0,通过n次循环,每次循环找出距离起点最短的点,用该点更新它的相邻节点到起始点的距离,这样n次循环之后即可确定终点到起点的最短距离是多少。而每次寻找距离起点最短距离的点若不使用最小堆来维护,则需要O(n)的时间,若使用堆则只需要O(1),这就是堆优化版的Dijkstra。
2024-07-20 11:26:08
966
原创 关于二分查找的边界问题
二分查找每次缩小范围时有两种情况,一种是l = mid,另一种是r = mid,当l=mid时mid必须要加1向上取整,不然会陷入l = l的死循环,而r = mid时不要用加1,因为下一步l=r会自动退出循环。在处理二分问题时我们总会疑惑mid = l + r >> 1 OR mid = l + r + 1>> 1。只要像记公式一样记住该场景就再也不会出现纠结加不加1了。
2024-07-20 11:00:45
376
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅