- 博客(10)
- 资源 (19)
- 收藏
- 关注
原创 面试题整理-两个栈实现队列
题目用两个栈实现队列。 解法准备两个栈。一个是input, 一个是output。1、入栈:直接用input.push()2、出栈:如果output非空。则利用output出栈。 如果output为空。则把input中的元素全部pop至output栈中。再利用output出栈。 说得简单一点就是从input栈进去,从ouput栈出去
2012-10-26 16:44:07 2421
原创 面试题整理-从数组中删除指定元素
题目:陈利人:#Facebook面试题#这是一个编程题,动手做做才会有体会。给一个数组和一个值,从数组中删除这个指定的值的所有出现,并且返回新的数组的长度。size_t remove_elem(T* array, size_t len, T elem) {}。解题:首先可以想到的是,用额外用一个数组。遇到不同的元素,就把此元素拷至额外的数组中。实际上,很快就可以发现
2012-10-25 12:32:27 3117
原创 面试题整理-重建二叉树
题目根据输入的前序遍历和中序遍历。重建一棵二叉树。解法:其实求解很简单。关键在于求出长度。假设函数的形式如同:templatenode *build(const T *pre, const T *mid, const int n);那么pre[0]肯定是树的根,可以把中序遍历分为两部分。一部分长度为A,另外一个长度为B。那么pre的构成则是。pre[0]--
2012-10-24 15:26:52 2090
原创 面试题整理-链表的几个微操
typedef struct _node{ int data; struct _node *next;}node;1 在链表未尾插入一个结点node *push_back(node **head, int value) { node *p = *head; if (NULL == head) return NULL; if (NULL
2012-10-17 08:59:03 2255
原创 面试题整理-合并数组
题意:需要将A,B两个已排序数组合并至A数组中,假设A数组中的空间是够用的。那么请写这么一个合并函数。当然,最后的结果也一定是有序的。解题:很好写。直接从后面开始向前合并#include #include #include int a[4096];int b[4096];int _cmp(const void *a, const vo
2012-10-16 22:48:47 2046
原创 面试题整理-空格变更
题目:给定个字符串,把这个字符串中的空格更改成为%20。假定这个字符串的空间是够用的。解法首先计算空格数目x与非空格数目y。那么更改之后的字符串长度为3x+y;计算出长度之后,再从尾部向前拷贝。#include #include #include char *change(char *src) { int cnt_space = 0, cnt_
2012-10-15 22:22:19 1885 2
原创 面试题整理-矩阵查找元素
需要在矩阵中查找元素。这个矩阵的排列如下:每一行都是有序的。每一列都是有序的。比如一个小矩阵。10 3020 80现在,我们需要在一个这样N * M的矩阵中找到一个元素,并返回其位置。思路首先,这个题不太适合二分查找。因为并不能保证第二行的元素都一定比第一行的任意元素大。所以应该是很难找到O(lgN)的算法。每次都是取
2012-10-15 20:39:38 2863
原创 面试题整理-数组做为平衡二叉树进行访问
题目:现在有一个数组,是排好序的。如何将其按照平衡二叉树进行打印。需要按层次遍历。思路很简单,就是需要确定一个算法去找左子结点与右子结点。#include #include #include #include #include #include #include #include #include #include #include
2012-10-13 21:41:46 2621
原创 面试题整理-台阶问题
原题 测试链接http://ac.jobdu.com/problem.php?cid=1039&pid=4 首先我们考虑上面链接中提出的问题:由于一次只能走两步,那么在到达n步的上一步。其只能是要么在(n-1)个台阶上。要么是在(n-2)个台阶上。所以我们可以得到fn = fn-1 + fn-2;f1 = 1; f2 = 2;这里可以看出,同样也可以利用斐波那契数的
2012-10-11 21:11:01 2609
原创 面试题整理-斐波那契数列
这个很好。其实也就是f(0) = 0, f(1) = 1. 然后 f(n) = f(n-1) + f(n-2);测试链接http://ac.jobdu.com/problem.php?cid=1039&pid=3求解#include #include long long a[71];void init(void) { a[0] = 0; a[1] = a[
2012-10-11 12:44:21 3672
精通正则表达式PDF
2010-03-05
Ubuntu编译Linux-0.11运行
2009-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人