数据结构/算法
文章平均质量分 85
淡红星空
北航小本科生一枚,从事互联网方向研究
展开
-
linux中的链表
//include/linux/list.h struct list_head { struct list_head *next, *prev; }; #define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HEAD(name) struct list转载 2013-08-09 17:40:15 · 879 阅读 · 0 评论 -
逆序数
归并排序及序列逆序数归并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个 N/2 个长度为2或1的有序子序列,再两两合并,如此重复,值得得到一个长转载 2013-09-19 19:42:03 · 2666 阅读 · 0 评论 -
最大子矩阵和问题
给定一个长度为n的一维的数组matrix[n],让求其最大matrix[i] + matrix[i+1] + ... + matrix[j] = sum问题? 简单算法:穷举法先预处理map[n]表示从matrix[0]->matrix[n]的和for(int i = 0 to n) for(int j = i+1 to n) { int原创 2013-10-12 17:29:00 · 1456 阅读 · 0 评论 -
十道海量数据处理面试题与十个方法大总结
第一部分、十道海量数据处理面试题 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。 再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多转载 2013-10-12 17:47:10 · 1011 阅读 · 0 评论 -
【笔面大全】卡特兰数 Catalan
卡特兰数的递推公式是F(n)=∑(k=1…n){F(k-1)*F(n-k)}=∑(k=0…n-1){F(k)*F(n-k-1)}一般性公式为F(n)=C(2n,n)/(n+1)可以描述的问题有1、n个元素的二叉查找树有多少种。2、n*n棋盘从左下角走到右上角而不穿过主对角线的走法。3、2n个人排队买票问题,票价50,n个人拿50元,n个人拿100元,售票处无零钱,能顺利转载 2013-09-20 00:50:12 · 1339 阅读 · 0 评论 -
【笔面大全】young氏矩阵
http://www.jobcoding.com/array/matrix/young-tableau-problem/如果一个矩阵每一行每一列都严格单调递增,我们称该矩阵为杨氏矩阵(Young Tableau)。对于杨氏矩阵(a[m][ n]),通常会涉及两个问题:(1) 怎样在杨氏矩阵中查找某个元素X?(2) 怎样在杨氏矩阵找第k大的数?2. 解决方转载 2013-09-24 09:12:20 · 1195 阅读 · 0 评论 -
【笔面大全】螺旋矩阵问题汇总
问题1 按顺时针方向构建一个m * n的螺旋矩阵(或按顺时针方向螺旋访问一个m * n的矩阵):2 在不构造螺旋矩阵的情况下,给定坐标i、j值求其对应的值f(i, j)。比如对11 * 7矩阵, f(6, 0) = 27 f(6, 1) = 52 f(6, 3) = 76 f(6, 4) = 63 构建螺旋矩阵对m * n 矩阵,最先访原创 2013-07-23 23:01:14 · 1610 阅读 · 0 评论 -
【笔面大全】使用两个栈模拟队列
#include "stdafx.h"#include using namespace std;//用栈模拟队列class Data{public: Data():data(0),next(NULL){} Data(int i):data(i),next(NULL){} int data; Data *next;};class Stack{public: Stack():转载 2013-07-23 22:48:38 · 1026 阅读 · 0 评论