数据结构
文章平均质量分 73
金老板家的长工
何以解忧,唯有暴富
展开
-
剑指Offer--旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:采用二分法解答这个问题,mid = low + (high - low)/2需要考虑三种情况:(1)array...原创 2018-03-19 16:34:17 · 125 阅读 · 0 评论 -
剑指offer——重建二叉树
题:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。首先我们要懂怎么重新建二叉树,在用代码实现,我当时做到题目想到的几个点。1,前序遍历第一个数为根节点。2,在中序遍历中找出根节点,根节点左边为左子树,右边为右子...原创 2018-03-13 20:21:37 · 124 阅读 · 0 评论 -
数据结构--搞懂红黑树
名为搞懂红黑树,所以一些最基本的概念定义就不再赘述,书上和网上一大堆资料,我学习的资料是算法第四版,参考博客http://blog.csdn.net/u010425776/article/details/60970433,重在理解红黑树这一数据结构。首先要知道的就是红黑树的性质,违反这几条性质就不能称为红黑树,接下来的关于红黑树的操作前提就是不违反这些性质。红黑树的性质:1、每个结点或是红色的...原创 2018-03-11 14:47:19 · 262 阅读 · 0 评论 -
剑指offer--关于链表操作的算法
题1:输入一个链表,输出该链表中倒数第k个结点。思路1:因为我们拿到的是第一个结点,不知道最后一个结点在哪。但是我们可以发现,从第一个结点走到倒数第K个结点的长度和正着第k个结点到最后一个结点的长度一样。所以我们可以用两个指针指向第一个结点,让第一个指证先走k-1步,然后两个指证一起走,这样,第一个指针走到底的时候,第二个指针也走到了倒数第k个结点。思路2:直接用一个count计数,进入while...原创 2018-03-20 15:43:44 · 109 阅读 · 0 评论 -
剑指offer--查询只出现一次的数字
题目:一个整形数组里面,只有两个数字出现了一次,其他的数字都出现了两次,求只出现一次的数。分析:首先考虑这个问题的一个简单版本,一个数组里除了一个数字外,其他的数字都出现了两次。请写程序找出只出现一次的数字? 这个问题的突破口在哪里?为什么别的数字都是出现了两次?这里就是为了让我们想到异或运算的性质:任何一个数字异或它自己都等于0,若没有这个特性,我们可以循环遍历数组,给每个出现的数...原创 2018-04-20 19:53:33 · 314 阅读 · 0 评论