首先,递归锁是什么 首先,对于互斥锁,分为递归锁和非递归锁。 在不同的线程中调用已锁定的互斥锁,必然会导致死锁。 但是在同一个线程中,如果想要多次获得一个锁,只能使用递归锁 其次,递归锁是不被提倡的,用到递归锁说明这个代码设计是有问题的。 更好的做法是,提取出一个被两个个公有函数调用的私有函数,这个... ...
分类:
其他好文 时间:
2019-09-10 20:57:32
阅读次数:
97
B so easy 一开始1e6弄个set莽了两次,果断T了,事实证明平衡树的常数的确相比离散化是在是太大了。用个并查集维护,删除一个节点的时候,假如他没有被删除过,那么就把他指向他的下一个元素(无论他的下一个元素是不是被删了都可以),并且把这个元素设置为“删除”,下面参照非递归路径压缩并查集弄了一 ...
分类:
其他好文 时间:
2019-09-08 00:20:12
阅读次数:
71
二分查找:两种方式: 非递归方式和递归方式主要思路: 对于已排序的数组(先假定是从小到大排序), 先定义两个"指针", 一个"指向"首元素low, 一个"指向"末尾元素high. 然后, 开始折半比较, 即让要查找的数与数组中间的元素(索引为 low+high/2)比较. 若要查找的数比中间数小, ...
分类:
编程语言 时间:
2019-09-08 00:18:09
阅读次数:
104
算法复杂性经常描述为递归方程,解递归方程得到算法复杂性的具体表示 用特征方程解递归方程 用生成函数解递归方程 用递推方法解递归方程 用递推方法解递归方程,也就是我们常用的数学归纳法,用生成函数解递归方程,也就是我们使用循环代替递归。 这节,我们利用高等数学的常微分方程,来进行求解递归式。 K阶常系数 ...
分类:
编程语言 时间:
2019-09-05 23:08:24
阅读次数:
180
本题是力扣网第50题。 实现 pow(x, n) ,即计算 x 的 n 次幂函数。 采用递归和非递归思路python实现。 ...
分类:
其他好文 时间:
2019-09-01 20:18:38
阅读次数:
119
二分查找:又称为折半查找,适用于排好序的顺序表。 基本思路:首先将给定的查找值K,与表中的中间位置的元素的关键字进行比较,若相等,则返回该元素的位置;若不等,表明所需查找的元素只能在中间元素的前半部分或者后半部分中;然后在缩小的范围中继续同样的查找,如此反复直到找到为止。 实现方式:递归实现和非递归 ...
分类:
其他好文 时间:
2019-09-01 14:56:52
阅读次数:
81
给定5 5的地图,1表示墙,0表示空地,从左上角走到左下角 是把所有的可走路径都记录下来了,但是 搜索有递归与非递归形式 本代码使用非递归形式 bfs+路径记录 对于num[i].pre=head的理解是他存在很多条路,每个点是从上一个点走过来的,但总存在一条路是到达终点的,所以,只需要得到到终点的 ...
分类:
其他好文 时间:
2019-09-01 13:06:08
阅读次数:
103
preorder inorder postorder 层次遍历 利用层次遍历输出从根结点到每个叶子结点的逆路径 ...
分类:
其他好文 时间:
2019-08-31 19:51:38
阅读次数:
98
题目链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/ 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过 ...
分类:
编程语言 时间:
2019-08-31 19:17:59
阅读次数:
83