![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
悲观锁
这个作者很懒,什么都没留下…
展开
-
交换两个数的值
注:交换两个数时,不能使用同一块内存空间(两个对象不能相同),如果为同一块内存结果则会为0。3、符合结合律【(a ^ b) ^ c = a ^ (b ^ c)】提到交换两个数的值,通常我们会想到使用一个变量记录。由上可得 a = 5;b = 10 成功交换。那么有没有方法,不使用变量就可以交换两个数呢?2、符合交换律【a ^ b = b ^ a】这样其实会创建一个多余的变量。原创 2023-06-13 22:28:00 · 589 阅读 · 0 评论 -
秒懂Dijkstra算法
Dijkstra算法是解决图中路径问题的,但只能解决一个点到所有点的所有最短路径。主要有几步:首先有个dis最短路径的数组,这个数组的含义是,目标点到其他点的路径; 其次需要维护一个vis数组,看是否更新过这个点。 遍历所有点,然后找当前没有访问过点的最小值。 然后更新此点到其他点的距离。看文字感觉有点复杂,举个栗子就清晰了。假设默认找从0到其他点的最短路径,dis数组为0 -> i 的最短距离。如果dis[2]就是0到2的最短距离,如果dis[100]就是0到100的最短距离。原创 2021-08-08 18:23:31 · 234 阅读 · 0 评论 -
rand5()得到rand3()或rand7()类型题:通过rand n()实现rand m()
1、rand5()得到rand3()或rand7()类型题通过rand5实现rand3很好实现,rand5的取值为[1,2,3,4,5]的值,但是rand3的取值[1,2,3],由此可得,当rand5随机到4,5时可以重新随机,因为每次随机到的概率是相同的。所以随机到[1,2,3]的概率也是相同的,随机也符合rand3的随机数。代码如下:int rand3() { int n = 5; // rand5 [1,2,3,4,5] while (n > 3) {原创 2021-07-21 21:30:44 · 1862 阅读 · 1 评论