算法习题
文章平均质量分 63
forestLight
这个作者很懒,什么都没留下…
展开
-
【算法】荷兰国旗
1.问题描述: 我们将乱序的红白蓝三色小球排列成有序的红白蓝三色的同颜色在一起的小球组。这个问题之所以叫荷兰国旗,是因为我们可以将红白蓝三色小球想象成条状物,有序排列后正好组成荷兰国旗。 2.问题分析:这个问题我们可以将这个问题视为一个数组排序问题,这个数组分为前部,中部和后部三个部分,每一个元素(红白蓝分别对应0、1、2)必属于其中之一。由于红、白、蓝三色小球数量并不一转载 2011-06-29 15:50:00 · 2150 阅读 · 0 评论 -
倒排索引基本总结
1. 作用:事先建立好倒排索引表,可以加速单词查找。2. 内容:包含单词出现的文档号、文档中的出现次数和文档中的位置(后面两个不一定有)。3. 查询:单个词语,直接找到倒排表中的那一项。句子查询,用这些单词在倒排表中的文档类求与运算。原创 2011-09-29 10:49:25 · 1096 阅读 · 0 评论 -
十道海量数据处理面试题与十个方法大总结
海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结。有任何问题,欢迎交流、指正。转载 2011-09-25 18:00:36 · 721 阅读 · 0 评论 -
【算法】每日微软面试题——day 7(找数组中唯一出现两次的数)
题:假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重复的那个数字。如果你在运算中使用了辅助的存储方式,那么你转载 2011-08-24 16:37:26 · 1332 阅读 · 2 评论 -
【算法】寻找K个最大的数组
1.问题描述: 有一堆未排序的数,前选择其中最大的K个进行输出。2.问题解析: 快速排序:O(nlogn) 堆排序:O(nlogn) 但是老师说一般面试的答案是堆排,我也估计会快一些。3.问题流程: 堆,是指根节点大于(或小于)其子节点的完全二叉树;最优二原创 2011-07-09 16:23:49 · 652 阅读 · 1 评论 -
【算法】二叉树遍历(层序)
1.问题描述: 层序遍历二叉树; 2.分析: 用队列实现,首先将头节点加入队列;如果队列不为空,则执行如下操作:从队列中取出元素输出,若该元素的子节点不为空,则将其加入队列。 3.代码实现: void levelSort(TreeNode * pHead){ deque dequeue; //a queue stores the pointer原创 2011-07-01 16:31:00 · 1289 阅读 · 1 评论 -
【算法】二叉树遍历(递归:前序、中序、后序)
1.问题描述: 二叉树遍历采用递归算法实现(包括前序、中序、后序)。 2.方法: 方法过于简单,不赘述。 3.代码实现: template void preOrder(TreeNode *pCurrentNode) { if (pCurrentNode==NULL) { return ; } coutdata<<end原创 2011-06-30 11:00:00 · 858 阅读 · 0 评论 -
测试:判断一棵树是否是平衡二叉树
/* ********************************************************************* Version 1.0 Author fan Created 2011-6-29 ******************************************************************原创 2011-06-29 17:39:00 · 3204 阅读 · 0 评论 -
【算法】判断一颗二叉树是否是平衡二叉树
1.问题描述: 判断一颗二叉树是否是平衡二叉树。 2.问题分析: 平衡二叉树要求左子树和右子树的高度相差为1,且左右子树都是平衡二叉树,显然需要计算二叉树高度的函数。 3.代码: templateint DepthTree(BSTreeNode *pbs){ if (pbs==NULL) return 0; else { int原创 2011-06-29 17:31:00 · 13017 阅读 · 0 评论 -
【算法】找出两个已序数组,是否含有相同的数字
1.问题描述: 找出两个已序数组,是否含有相同数字。(快速算法)2.代码解决:/* version 1.0 Created 16:15 2011-6-29 Author fan */#include using namespace std;bool SameNumber(int arrA[],int arrB[],int l原创 2011-06-29 16:15:00 · 1180 阅读 · 0 评论 -
链表反转
链表反转 1.链表有两种,一是带头结点的:头结点存储长度信息,头结点的next指向第一个实际节点;二是不带头结点的,头结点即第一个节点。这里使用带头结点的链表。 2.需要三个指针,记录当前节点(反转用)、前一个节点、后一个节点(反转之后前进用)。 测试的时候,在创建链原创 2011-09-29 10:03:16 · 14158 阅读 · 2 评论