- 博客(71)
- 收藏
- 关注

原创 汉诺塔问题及可视化操作
汉诺塔可视化 作为一个小白,深知算法的枯燥.但是,算法是要学习的。今天给大家提供一个好一点的学习方法。算法的可视化,让大家找到算法的兴趣。 就用Graphics2D这个类,操作很简单,没什么技术,但是和算法结合到一起,就很有趣了。会让你看到了算法的可视化操作,同样也感受到了算法的魅力,也许在以后的算法学习中,用可视化为你开启一段不一样的初学之路,也算是比较有趣的东西。 今天我们就来聊一...
2020-03-09 20:08:34
2596
7
原创 leetcode 173.二叉搜索树迭代器栈绝妙思路
来进行实现的,思路很好,很简练。进行next的时候,先是一直拿到左边的子树,直到null为止,这一步比较好思考一点,下一步,弹出时,只修改cur节点即可,所以,在利用while循环时,要注重循环变量代表什么含义才能够更好的写出优雅的算法来。以上算法题中一个比较好的实现思路就是利用栈来进行实现,以下方法三就是利用。
2025-01-03 22:33:20
292
原创 宇信科技JAVA笔试(2024-11-26日 全部AK)
第2题:相邻字符串可以进行变化,比如a可以变成b,a还可以变成z。问给一个字符串,最少执行多少次变化,可以使得字符串都是一样的。其中字符串都是小写字符。唯一一次笔试全部AK的,百分之百,还有十分钟就直接交卷了,思路可能并不是最好的,但是都100%啦。得到的值中0的个数,比如7!为5040,输出为2。第3题:格式化输出问题。
2024-11-26 22:01:11
716
原创 递归算法问题汇总-边界条件的位置
s2_index + 1 < s2.length()是控制isInterleaveByRecursion的,第二种方法会有问题,因为当3.charAt(s3_index) == s2.charAt(s2_index)满足的时候,s3_index不会加1,就代表s2中s2_index字母不会被使用。总结:边界条件可以放置于两个位置,合适的位置会使得思路以及编码非常优雅,特别是利用递归算法时,问题排查会更加困难。的位置,如果边界放置的位置不好,则会出现一系列问题,特别是在递归中,更不容易排查。
2024-11-20 15:11:19
369
原创 动态规划不同维度分析leetcode198.打家劫舍问题
一般来说,遇到递归时,先思考一维再思考二维,对于复杂的问题,可直接先对二维进行思考。一维一般注意点:(1)dp数组中当前索引对应存储空间存储的是从下标0到当前索引最优值,还是必须考虑当前索引的次优值,对于该题中第一种解法,当前房间必须偷的最优值。二维一般要注意五要素,特别是遍历顺序,可以思考对dp[i][j]中j进行遍历,正如该题,也可以按照二维数组遍历顺序进行遍历,当前值由(i - m (||、&&) j - n)s等所得。最后,为了方便编码,可以为边界预留空间,比如,本解法中dp数组长度都加了1。
2024-11-16 22:17:11
437
原创 动态规划技巧点
今天在哔哩哔哩上刷到了一个非常有意思的leetcode整数拆分的题,博主利用动态规划。我暂时没有想到动态规划来求解,因此先尝试一下记忆性递归,没想到击败100%用户,暂时不清楚leetcode屏蔽逻辑。该题并不是很难,但有一个递归技巧点,因此进行记录。由于该题解要求拆出的数字个数要大于1,但是在子递归中,不用进行拆分就也是可以的,因此,引入了一个flag参数,当第一次进行拆分的时候,只要拆分出两个,子问题没有这条限制,所以引入了一个flag。
2024-11-14 21:18:30
233
原创 WeakHashMap原理
WeakHashMap 中key在没有强引用的时候,如果发送了gc,该key就会被回收。为了保证一致性,该Map中回收方法为expungeStaleEntries。以上代码会遍历引用队列,然后删除已被回收的键值对。该方法会在getTable(获取表),size(获取表大学)、resize(扩容)的时候使用。因此,expungeStaleEntries方法会在WeakHashMap增删改查、扩容的地方调用。而getTable会在增删改查的时候调用。
2024-11-14 10:36:09
146
1
原创 SpringSecurity源码中核心类
SecurityBuilder是安全构架器,HttpSecurity和WebSecurity都是SecurityBuilder的实现类,HttpSecurity通过build()构建了一个SecurityFilterChain调用链。
2024-11-11 15:39:08
695
转载 SmartLifecycle用法
现在基本上所有的bean,都使用Spring容器来统一管理,SmartLifecycle用于在Spring加载和初始化所有bean之后,接着执行一些任务或启动需要的异步服务,SmartLifecycle 是一个接口。当Spring容器加载所有bean并完成初始化之后,会接着回调实现该接口的类中对应的方法(start()方法)。
2024-10-31 13:12:38
73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人