
数据结构
文章平均质量分 58
patkritLee
practice makes perfect.
展开
-
二叉树中和为某一值的路径
例子:10 5 12 4 7由于路径是从根节点出发到叶结点,也就是说路径总是以根节点。在树的前序、中序、后序三种遍历方式中,只有前序遍历是首先访问根节点的。按照前序遍历的顺序遍历上图,在访问结点10之后,就会访问结点5。从二叉树结点的定义可以看出,在本体的二叉树结点中没有指向父节点的指针,访问到结点5的时候原创 2016-08-08 22:57:25 · 422 阅读 · 0 评论 -
海量数据解题之道:Bitmap
1.概述本文将讲述Bit Map算法的相关原理,以及一些利用场景,例如BitMap解决海量数据寻找重复、判断个别元素是否在海量数据当中等问题。最后说说BitMap的特点以及在各个场景的使用特性。2.算法题目:32位整数中有40亿个不重复的整数,给定一个整数,确定是否在40亿个中出现。PC内存为2G思考:40亿个int大约占 (40*10^9*4)/1024/1024/102原创 2016-08-08 15:45:35 · 2128 阅读 · 0 评论 -
二叉树中任意两个节点之间的最大距离
先Mark,回头详细分析http://www.cnblogs.com/biyeymyhjob/archive/2012/08/18/2645456.html原创 2016-08-04 16:24:56 · 1335 阅读 · 0 评论 -
hash算法
第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。------------------------------------ 第一部分:Top K 算法详解问题描述百度面试题: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。转载 2016-08-04 14:54:51 · 396 阅读 · 0 评论 -
数组中只出现一次的数字
题目:一个整形数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。例如输入数组{2,4,3,6,3,2,5,5},因为只有4/6这两个数字只出现一次,其他数字都出现了两次,所以输出4和6。这是一个比较难的问题,很少有人能在面试的时候不需要提示一下子想到最好的解决办法。一般当应聘者想了几分钟还没有思路,面原创 2016-07-03 22:53:10 · 362 阅读 · 0 评论 -
堆排序
http://blog.youkuaiyun.com/xiaoxiaoxuewen/article/details/7570621原创 2016-06-27 23:30:30 · 324 阅读 · 0 评论 -
快排
#include using namespace std;template void quicksort(T a[],int low,int high){ int mid; if(low < high){ mid = partition(a,low,high); quicksort(a,low,mid-1); quicksort(a,mid+1,high); }}tem原创 2016-06-27 21:50:34 · 312 阅读 · 0 评论 -
atoi函数实现
写atoi函数的时候需要注意一下几点1. 字符串前的空白2. 字符串所表示数值的正负号3. 结束条件,遇到非数字或者字符'\0'结束4. 考虑溢出,分别与int值所能表示的最大(0x7fffffff)和最小值(0x8000000)进行比较5. 考虑异常输入情况下,用全局变量valid来标识,对于"+/-" "0" "+abc"需要进行区分#defi原创 2016-06-24 23:25:50 · 381 阅读 · 0 评论 -
判断单链表中是否有环,环的长度,环的入口节点
题目:给定一个单链表,只给出头指针head:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少? 解法:1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。2、对于问题2,记录下问题1的碰转载 2016-06-24 23:02:22 · 652 阅读 · 0 评论 -
二叉树打印
举例:1.初始化时,last=1,把1放入队列;2.将1出队,把1的子孩子2,3放入队列,更新nlast=3;3.nlast更新完之后,打印上一次出队的1,并和last比较,如果相同就打印换行,并更新last=nlast=3;4.将2出队,把2的子孩子4放入队列,更新nlast=4;5,nlast更新完以后,打印上一次出队的2,并和last(3)比较,不原创 2016-05-24 15:08:59 · 436 阅读 · 0 评论 -
KMP中的next数组最通俗最详细的解析
先看看next数据值的求解方法位序 1 2 3 4 5 6 7 8模式串 a b a a b c a cnext值 0 1 1 2 2 3 1 2next数组的求解方法是:1.第一位的next值为02.第二位的next值原创 2016-05-22 14:28:13 · 597 阅读 · 0 评论 -
求树的叶子结点的个数
// 树的遍历.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;struct BTNode{ int data; struct BTNode *lchild, *rchild;};typedef struct BTNode BTnode;typedef struct BTNode原创 2016-02-26 19:25:56 · 1822 阅读 · 0 评论 -
二叉树的常用三种遍历
struct BTNode{ int data; struct BTNode *lchild, *rchild;};typedef struct BTNode BTnode;typedef struct BTNode* BiTree;void preOrder(BTNode *root){ if (root == NULL){ return; } printf("%d",原创 2016-02-26 18:42:37 · 450 阅读 · 0 评论