摘要: 题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解法一:时间复杂度O(n),空间复杂度O(n) 阅读全文
posted @ 2019-07-02 22:00 zpchya 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 解法一:时间复杂度O( 阅读全文
posted @ 2019-07-01 17:53 zpchya 阅读(255) 评论(0) 推荐(0) 编辑
摘要: map容器中的元素是一些关键字-值(key-value)对。map全称为有序的关键字不可重复的map,可以称之为关联数组,map通过关键字而非位置来查找值。 除了map外,还有允许关键字重复的multimap、无序的(由哈希函数组织的)关键字不可重复出现的unordered_map和无序的关键字可重 阅读全文
posted @ 2019-07-01 16:52 zpchya 阅读(422) 评论(0) 推荐(1) 编辑
摘要: 1 vector容器定义和初始化 1)除array容器外,其他容器(无论是顺序容器还是关联容器)都定义了默认构造函数,可以创建一个指定类型的空容器。 2)列表初始化指定了容器的每个元素的值和容器元素的个数。 3)将一个容器初始化为另一个容器的拷贝,两个容器的类型和其数据类型必须匹配。 4)除了3)中 阅读全文
posted @ 2019-06-28 18:19 zpchya 阅读(916) 评论(0) 推荐(0) 编辑
摘要: 题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 方法一:对每一行元素进行二分查找。时间复杂度为O(nlog(m)),其中n为行数、m为列数;空间 阅读全文
posted @ 2019-05-22 17:14 zpchya 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1 图的两种存储方式 1.1 邻接矩阵(Adjacency Matrix) 1.1.1 原理 用一维数组存储图中顶点信息;用二维数组(矩阵)存储图中的边和弧的信息。对于无向图来说,如果顶点i与顶点j之间有边,就将A[i][j]和A[j][i]标记为1;对于有向图来说,如果顶点i和顶点j之间,有一条箭 阅读全文
posted @ 2019-05-20 16:31 zpchya 阅读(3582) 评论(0) 推荐(0) 编辑
摘要: 来自https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list。 这个问题想要从每年出版的许许多多C++书籍中寻找一些杰作。 不像其他编程语言可以毫不费力的通过网络教程学会,C++的学习只能通过一些优 阅读全文
posted @ 2019-05-13 20:46 zpchya 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 1 内核版本查看指令 1.1 cat /proc/version 1.2 uname -a 2 系统版本查看指令 2.1 cat /etc/issue 2.2 lsb_release -a 上述图片均是ubuntu系统的测试结果,其他系统可能有些差异。 阅读全文
posted @ 2019-05-13 17:29 zpchya 阅读(832) 评论(0) 推荐(0) 编辑
摘要: 方法一:递归法求解二叉树深度,递归公式为h(root) = max(h(root->left), h(root->righr)) + 1,递归终止条件为树为空数即root = nullptr。 时间复杂度:二叉树中每个节点都要对其求二叉树最大深度,所以求二叉树最大深度函数执行次数为n,故时间复杂度为 阅读全文
posted @ 2019-05-10 21:28 zpchya 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 1 堆 1.1 堆是什么? 堆是满足一下性质的完全二叉树:每个结点的值都大于(小于)等于其左右子树中任意结点的值。每个节点都大于等于其左右子树任意结点的称为大顶堆;每个节点小于等于左右子树任意结点的称为小顶堆。 1.2 堆的存储结构 由定义可知堆是一种完全二叉树,所以堆可以由数组来存储,通过数组下标 阅读全文
posted @ 2019-05-10 16:38 zpchya 阅读(426) 评论(0) 推荐(0) 编辑