- 博客(75)
- 收藏
- 关注
原创 疑难杂症-同类调用spring注解失效问题通用性解决
方法需要使用@Transactional,@Async等需要spring切面简化一些操作等注解本类调用的时候会失效。
2025-03-06 13:56:39
185
原创 Mysql间隙锁死锁避免最佳实践
最近写代码的时候听说,批量操作提高死锁的概率,但是心里又想,为什么没看到任何一款数据库相关的中间价禁止或者提醒批量操作?心里想肯定是因为一起其他操作的不当导致的死锁问题。进行了一些思考,希望可以帮助到大家。
2024-06-05 14:47:20
1549
3
原创 训练营总结
卡哥的帮助不能说是多牛掰,但是可以说是很贴心了,算法,各种机构的资源很多很多,包括自己也有网盘上某些结构的算法讲解,但是都强调刷,而不是卡哥这样分类,细致,贴心的教会我,从刷题开始,找到了一些刷题的感觉,然后继续冲刺,到二叉树那里咬着牙学会,dp那里,逼着自己学会,看着180多人只有十几个人坚持,就咬着牙,挤出时间学会,接下来就是二刷,巩固,把我网盘里的东西就有实力刷了hhh,还有力扣热题,我也将继续总结,跟着卡哥走,offer迟早有hhh,刚刷完就有一个中厂的面试了,期待自己旗开得胜!
2024-01-26 19:57:10
539
原创 算法训练营Day59(单调栈)
建议是掌握 双指针 和单调栈,因为在面试中 写出单调栈可能 有点难度,但双指针思路更直接一些。在时间紧张的情况有,能写出双指针法也是不错的,然后可以和面试官在慢慢讨论如何优化。接雨水这道题目是 面试中特别高频的一道题,也是单调栈 应用的题目,大家好好做做。单调栈也不是很难,理解好水平积累,巧用单调栈还是很容易的。最直接的方法,我自己写的。
2024-01-26 12:12:49
604
原创 算法训练营Day58(单调栈)
739. 每日温度今天正式开始单调栈,这是单调栈一篇扫盲题目,也是经典题。大家可以读题,思考暴力的解法,然后在看单调栈的解法。就能感受出单调栈的巧妙单调栈可以解决的问题:当前元素右面或者左面,,比他大或者小的元素,再做其他逻辑。
2024-01-25 12:26:43
481
原创 算法训练营Day56(编辑距离)
本题和动态规划:115.不同的子序列 相比,其实就是两个字符串都可以删除了,情况虽说复杂一些,但整体思路是不变的。在上面几道题做完之后,这个还挺简单的。583. 两个字符串的删除操作。
2024-01-24 10:26:57
425
原创 算法训练营Day55(子序列--编辑距离)
这道题目算是 编辑距离问题 的入门题目(毕竟这里只是涉及到减法),慢慢的,后面就要来解决真正的编辑距离问题了。他那道题区别就是else里面,两个都可以删,就是取max(i j-1 i-1 j)115.不同的子序列。和最长公共子序列相似。好懵,二刷好好再看下。
2024-01-23 17:48:40
401
原创 算法训练营Day53(子序列问题)
53. 最大子序和 动态规划。秒了,动态规划的比贪心的简单。1143.最长公共子序列。着重理解else里面的逻辑。1035.不相交的线。
2024-01-20 14:51:59
422
原创 算法训练营Day52(子序列系列)
这道题用递归五部曲不那么适用,先看双层for循环的逻辑顺序最好,然后看代码脑海里模拟以下。如nums[i]>nums[j] dp[i] = dp[j] +1;例子模拟 5 3 7 8 3<5 不操作, 7>5,.+1。:300.最长递增子序列 最大的区别在于“连续”。先尝试自己做做,感受一下区别。i之前包括i,到nums[i]的最长递增子序列的长度。连续就很简单了,不用里面的那层for循环,秒了。674. 最长连续递增序列。718. 最长重复子数组。300.最长递增子序列。
2024-01-19 18:44:11
409
原创 算法训练营Day51(买卖股票总结)
卖出去好几天了才买的:dp[i-1][1]-prices[i]冷冻期刚过买的:dp[i-1][3]-prices[i]昨天是买入的,刚卖出 dp[i-1][0]+prices[i]dp[0][1] =0;前一天就保持卖出:dp[i-1][1]前一天本来就持有dp[i-1][0]刚过完冷冻期:dp[i-1][3]dp[i][1]: 不持有股票,但是之前卖出去的。昨天刚卖出 dp[i-1][2]dp[i][2]: 不持有股票,是刚卖出去的。dp[i][0] :持有股票。dp[i][3]:冷冻期。
2024-01-18 20:03:21
580
原创 算法训练营Day50(买卖股票)
/这个不写,第一天刚持有的时候把dp[i-1][0]换成0就可以。今天才刚持有: dp[i-1][0] -prices[i]今天才不持有:dp[i-1][1]+prices[i]今天才持有:dp[i-1][2]-prices[i]今天才不持有:dp[i-3]+prices[i]前一天本来就不持有:dp[i-1][2]前一天本来就持有:dp[i-1][1]
2024-01-18 13:46:45
873
原创 算法训练营Day49(买卖股票)
--昨天有股票,今天卖的, prices[i]+dp[i-1][0] {要加上昨天持有股票手里的钱,其实是欠的钱}----昨天不持有,今天刚买 -price[i] + 0{0不写,昨天不持有股票,手里没钱就是9=0)----昨天就有,保持:dp[i-1][0]---昨天不持有,保持:dp[i-1][1]dp[an][0] :第i天持有股票最大金额,dp[an][1]:第i天不持有股票最大金额。
2024-01-17 12:47:11
544
原创 算法训练营Day47(打家劫舍)
每个节点两个,dp[0]表示不偷的最大金额,dp[1]表示偷了的最大金额。抢i: dp[i-2] +nums[i]dp数组:i-1,考虑到i-1的最大数组得到的最大金币。index 1:偷大的,max()index 0:就一个,必须偷。不抢i:dp[i-1]在1的基础上,分别考虑头尾就可以了。213.打家劫舍II。337.打家劫舍III。
2024-01-16 20:40:22
446
原创 算法训练营Day46(背包总结)
动态规划之完全背包,你的背包如何装满?| LeetCode:139.单词拆分_哔哩哔哩_bilibili代码随想录关于多重背包,你该了解这些!代码随想录背包问题总结篇!代码随想录。
2024-01-14 17:52:52
405
原创 算法训练营Day43(完全背包[组合排列])
完全背包在处理多少种方法的时候,先物品再背包表示组合,先背包再物品表示排列处理能不能装的下的时候,都可以。
2024-01-11 20:28:32
429
原创 算法训练营Day40(动态规划)
今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来。理解难度大,但学完其实很简单。96.不同的二叉搜索树。
2024-01-08 18:52:32
561
原创 算法训练营Day39(动态规划)
62.不同路径62. 不同路径 - 力扣(LeetCode)class Solution { public int uniquePaths(int m, int n) { //1dp数组 m n代表位置,dp[m][n]代表到达这里的途径个数 int [][] dp = new int[m][n]; //3初始化 for(int i = 0;i<n;i++){ dp[0][i] =
2024-01-06 12:12:59
507
原创 算法训练营Day36(贪心-重叠区间)
都算是 重叠区间 问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!还是属于那种,做过了也就会了,没做过就很难想出来。不过大家把如下三题做了之后,重叠区间 基本上差不多了。435. 无重叠区间。435. 无重叠区间。763.划分字母区间。
2024-01-03 21:46:00
510
原创 算法训练营Day35(贪心)
贪心感觉就贪在优先选择10 5留着后面用吧,和日常生活一样。452. 用最少数量的箭引爆气球。406.根据身高重建队列。
2024-01-03 21:35:08
461
原创 算法训练营Day34(贪心算法)
至于环的问题,total排除掉了没有结果的案例,也就是说,一定是有结果的。涉及到一个思想,就是想处理好一边再处理另一边,不要两边想着一起兼顾。那么curSum之前没有结果,那么一定再后面,也就不需要环了。1005.K次取反后最大化的数组和。这个图,不太理解,等问明白了解释一下。第二次遍历的时候注意取最大值就可以了。
2024-01-01 12:16:39
863
1
原创 算法训练营Day32
因为这个范围可以一次选择跳动的,更改范围,说明一次挑不到,要再跳。全局最优,到最后就是整个数组跳跃的最大范围。局部最优,每次遍历都找最大的覆盖范围,所以count++再新范围这里。跳跃几次,更新几次覆盖范围。
2023-12-30 11:27:40
452
原创 算法训练营Day31(贪心)
aaa这个题,我不太理解和贪心的关系,没搞懂,二刷再好好理解。小孩是外层循环的原因是:小孩可以饿着,饼干不能扔掉!理论就是没有理论,知道局部最优推整体最优的思想。
2023-12-29 19:42:32
399
原创 算法训练营day30(回溯总结二刷先回顾这里)
刚刷完,等二刷的时候再总结都可以跳过的话,学一个这个N皇后吧,上课水过这个,蛮想学懂的哈哈哈332.重新安排行程二刷学51. N皇后//填充数组apireturn res;if(row==n){//到叶子节点了return;i<n;i++){//棋盘下一行//char转String的api// 检查列i<row;++i) { // 相当于剪枝// 检查45度对角线// 检查135度对角线37. 解数独二刷学。
2023-12-28 17:52:48
371
原创 算法训练营Day27
切割线是startIndex+1,也就是i+1,也就是下一层递归用的新的startIndex。注意一下253中,2可以复用的,对应代码,也就是for循环的终止条件是i。剪枝操作二刷的时候再看吧!
2023-12-25 14:55:18
380
原创 算法训练营Day25(回溯)
对java来说,String操作没有那么方便,就要接住StringBuilder,多了一个成员变量。这里用temp操作,也就不涉及隐藏回溯逻辑这一说了。17.电话号码的字母组合。
2023-12-23 12:51:25
474
原创 算法训练营Day23(二叉树)
我的总结就是一般二叉树用后序,来做到孩子节点信息穿给根节点二叉搜索树用中序,利用自增特效求深度这些用前序但是:涉及一些构造,比如二叉搜索树,或者一些不用管遍历顺序的题目,就淡化一下遍历顺序的思想,以免只顾着遍历顺序而影响我们做题的思考代码随想录 (programmercarl.com)
2023-12-21 12:52:58
454
原创 算法训练营Day22(二叉树)
这里点一下我做题的时候的误区,我一直以为要中序遍历,但是二叉搜索树这里并不是都需要中序遍历的,可以根据特性固定遍历顺序的时候,就可以直接用二叉搜索树的特性了。相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。我的题解,,前序遍历做的,用了二叉搜索树的特性,但是只用了一半。卡哥的递归法,在我的基础上加了一些。我的好像还比他的快,235. 二叉搜索树的最近公共祖先。701.二叉搜索树中的插入操作。450.删除二叉搜索树中的节点。迭代法,也好理解的一批。
2023-12-20 14:08:41
425
原创 算法训练营Day21(二叉树)
才会直接返回,比如这样二叉树,这个左孩子为null的时候,return一个-1,是对整体没什么作用的,也就是说,这里retrun -1既可以排除为null的情况,递归使用也不回带来什么影响。虽然说递归的返回值为int一般是不需要遍历整个树,之间返回的,但是对于这道题完全可以把提供的二叉树当作递归函数,因为root为null直接返回,什么时候为null?写题的时候,先按照后续遍历写出来,再在脑子里回想一遍递归过程,就很好理解了,代码虽然简洁,还是需要认真的思考一下。注意终止条件,是3个,
2023-12-19 11:58:53
463
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人