上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 24 下一页
摘要: // 面试题56(二):数组中唯一只出现一次的数字 // 题目:在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次。请 // 找出那个吃出现一次的数字。 #include int FindNumberAppearingOnce(int numbers[], int length) { if (numbers == nullptr || length = 0; --j)//... 阅读全文
posted @ 2019-03-16 19:54 深夜十二点三十三 阅读(247) 评论(0) 推荐(0) 编辑
摘要: // 面试题56(一):数组中只出现一次的两个数字 // 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序 // 找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 #include unsigned int FindFirstBitIs1(int num); bool IsBit1(int num, unsigned int indexBi... 阅读全文
posted @ 2019-03-16 19:37 深夜十二点三十三 阅读(309) 评论(0) 推荐(0) 编辑
摘要: // 面试题55(二):平衡二叉树 // 题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中 // 任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 #include #include "BinaryTree.h" // ====================方法1==================== //迭代的从上到下,判断每个节点是否是平衡树,... 阅读全文
posted @ 2019-03-16 10:53 深夜十二点三十三 阅读(340) 评论(0) 推荐(0) 编辑
摘要: // 面试题55(一):二叉树的深度 // 题目:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的 // 结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 //如果左右节点只有一个存在,则深度为该存在的节点的深度+1 //如果左右节点都存在,则深度为最大子节点深度+1 #include #include "BinaryTree.h" int TreeDep... 阅读全文
posted @ 2019-03-16 10:27 深夜十二点三十三 阅读(186) 评论(0) 推荐(0) 编辑
摘要: // 面试题54:二叉搜索树的第k个结点 // 题目:给定一棵二叉搜索树,请找出其中的第k大的结点。 #include #include "BinaryTree.h" const BinaryTreeNode* KthNodeCore(const BinaryTreeNode* pRoot, unsigned int& k); const BinaryTreeNode* KthNode(... 阅读全文
posted @ 2019-03-16 10:01 深夜十二点三十三 阅读(180) 评论(0) 推荐(0) 编辑
摘要: // 面试题53(三):数组中数值和下标相等的元素 // 题目:假设一个单调递增的数组里的每个元素都是整数并且是唯一的。请编程实 // 现一个函数找出数组中任意一个数值等于其下标的元素。例如,在数组{-3, -1, // 1, 3, 5}中,数字3和它的下标相等。 //思想:因为这里也是递增的,如果中间点的值大于下标,那后面所有值都会大于相应下标,同理中间点小于下标,前面都会小于下标 #inc... 阅读全文
posted @ 2019-03-15 16:49 深夜十二点三十三 阅读(204) 评论(0) 推荐(0) 编辑
摘要: // 面试题53(二):0到n-1中缺失的数字 // 题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字 // 都在范围0到n-1之内。在范围0到n-1的n个数字中有且只有一个数字不在该数组 // 中,请找出这个数字。 #include //可以用等差数列求和得到A,然后求数组全部数字和B,然后A-B是缺失的数字,但是该算法时间复杂度是O(n),没有利用递增排序的特点 ... 阅读全文
posted @ 2019-03-14 09:24 深夜十二点三十三 阅读(420) 评论(0) 推荐(0) 编辑
摘要: // 面试题53(一):数字在排序数组中出现的次数 // 题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1, 2, 3, 3, // 3, 3, 4, 5}和数字3,由于3在这个数组中出现了4次,因此输出4。 #include int GetFirstK(const int* data, int length, int k, int start, int end); int ... 阅读全文
posted @ 2019-03-14 09:17 深夜十二点三十三 阅读(250) 评论(0) 推荐(0) 编辑
摘要: // 面试题52:两个链表的第一个公共结点 // 题目:输入两个链表,找出它们的第一个公共结点。 #include #include "List.h" unsigned int GetListLength(ListNode* pHead); //下面这个时间复杂度是O(m+n),且不用辅助空间 //另一种方法是使用两个栈,从尾到头比较,这样时间复杂度不变,空间复杂度O(m+n) ListN... 阅读全文
posted @ 2019-03-14 08:49 深夜十二点三十三 阅读(195) 评论(0) 推荐(0) 编辑
摘要: // 面试题51:数组中的逆序对 // 题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组 // 成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 #include using namespace std; int InversePairsCore(int* data, int* copy, int start, int end); int InverseP... 阅读全文
posted @ 2019-03-13 23:19 深夜十二点三十三 阅读(411) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 24 下一页