![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
zhao111222333444
这个作者很懒,什么都没留下…
展开
-
并查集的学习和模拟实现
并查集 将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类问题的抽象数据类型称为并查集。 采用了类似于森林的数据形式。 特点: 1.初始化为-1; 2.在一组的数据选出一个代表当根节点,根节点用负数存储该集合的元素个数 3.集合的其他节点存根节点的索引。 4.将两个数据加入到一个结合,要先判断它们的顶级跟集合是否在一起,在一起则结束,若不在一起需要将两个根节点再次构造原创 2021-07-31 11:28:53 · 124 阅读 · 0 评论 -
【LeetCode】从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树
构造二叉树从前序与中序遍历序列构造二叉树从中序与后序遍历序列构造二叉树非递归 从前序与中序遍历序列构造二叉树 采用递归创建: 1.对于参数preorder,采用引用的方式创建,保证共用一个 2.startidx和endidx直接传数字,每一层递归都有自己的值 3.递归的结束条件是<而不是<=,因为start和end指向同一个元素时,这个元素还没有创建,在接下来创建他的子树才会返回 4.每一层递归要创建preorder[preidx]为值的数,然后创建他们的左子树,右子树(因为前序遍历的顺序是根原创 2021-05-14 11:57:55 · 87 阅读 · 0 评论 -
找单身狗(数组中数字出现的次数)
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 编写一个函数找出这两个只出现一次的数字。 void bubbleSort(int arr[], int size) {//顺序 for (int a = 0; a < size - 1; a++){//最多size-1轮比较 for (int b = 0; b < size - 1 - a; b++){ if (arr[b]>arr[b + 1]){原创 2021-03-10 16:57:06 · 212 阅读 · 0 评论 -
模拟实现atoi(字符串转数字)
我们先来看一看在标准库中的函数介绍: 解析C-string str,将其内容解释为整数,并返回为int类型的值。 看一下函数的具体细节: 该函数首先根据需要丢弃任意数量的空白字符(与isspace中一样) ,直到找到第一个非空白字符为止。然后,从这个字符开始,接 受一个可选的初始加号或减号,后面跟着尽可能多的基数为10的 数字,并将它们解释为数值。解析C-string str,将其内容解释为 整数,并返回为int类型的值。 字符串可以在组成整数的字符之后包含额外的字符,这些字符被 忽略,对函数的行为没原创 2021-03-11 12:20:13 · 215 阅读 · 0 评论