
面试
ju136
这个作者很懒,什么都没留下…
展开
-
面试题整理-矩阵查找元素
需要在矩阵中查找元素。这个矩阵的排列如下:每一行都是有序的。每一列都是有序的。比如一个小矩阵。10 3020 80现在,我们需要在一个这样N * M的矩阵中找到一个元素,并返回其位置。思路首先,这个题不太适合二分查找。因为并不能保证第二行的元素都一定比第一行的任意元素大。所以应该是很难找到O(lgN)的算法。每次都是取原创 2012-10-15 20:39:38 · 2914 阅读 · 0 评论 -
面试题整理-数组做为平衡二叉树进行访问
题目:现在有一个数组,是排好序的。如何将其按照平衡二叉树进行打印。需要按层次遍历。思路很简单,就是需要确定一个算法去找左子结点与右子结点。#include #include #include #include #include #include #include #include #include #include #include原创 2012-10-13 21:41:46 · 2656 阅读 · 0 评论 -
面试题整理-台阶问题
原题 测试链接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 · 2642 阅读 · 0 评论 -
面试题整理-3数之和为0
Given an array S of n integers, are there elements a,b,c inS such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:Elements in a triplet (a,b,c) mus原创 2012-05-09 20:16:18 · 1666 阅读 · 0 评论 -
面试题整理-链表形式大数求和
两个整数,每位的十进制表示都放到链表中,不过是倒序的,需要求出其结果。原题如下:Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes cont原创 2011-11-17 20:38:47 · 1919 阅读 · 0 评论 -
面试题整理-最小没出现的整数
题目:#面试题#给定一个无序的整数数组,怎么找到第一个大于0,并且不在此数组的最小整数。比如[1,2,0] 返回 3, [3,4,-1,1] 返回 2。最好能O(1)空间和O(n)时间。来源http://weibo.com/lirenchen。 解法:直接考虑这个问题是比较困难的。不如先换个简单的问题。 问题1给定一个数组,长度为n,除a[0]以外,其他元素都是a[原创 2012-11-06 16:16:35 · 8628 阅读 · 11 评论 -
面试题整理-卡特兰数问题收集
首先说一下卡特兰数列,H(n) = C(n, 2n) / (n+1) = (2n)!/(n!n!(n+1))H(3) = 5; 题目1:矩阵的乘法添加括号我们知道,A*B可以,但是并不表示B*A也可以。假设有N+1个矩阵相乘,不能交换次序。只能用添加括号的方法来修改乘积的次序。那么有多少种添加括号的方法。H(n)种。 题目2:出栈次序问题,一个栈,其进栈的序列是原创 2012-11-08 14:15:58 · 2911 阅读 · 0 评论 -
面试题整理-空格变更
题目:给定个字符串,把这个字符串中的空格更改成为%20。假定这个字符串的空间是够用的。解法首先计算空格数目x与非空格数目y。那么更改之后的字符串长度为3x+y;计算出长度之后,再从尾部向前拷贝。#include #include #include char *change(char *src) { int cnt_space = 0, cnt_原创 2012-10-15 22:22:19 · 1908 阅读 · 2 评论 -
面试题整理-合并数组
题意:需要将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 · 2074 阅读 · 0 评论 -
面试题整理-C++ 序列化对象
题目:在C++里面,两台机器之间的函数相互调用,需要传递对象。采用什么样的方法可以把C++对象序列化之后,在两台机器之间,像字符串一样传输。解法:想到boost库中是有一个序列化类的。在这里,我们直接利用这个类来进行处理。#include #include #include #include #include using namespace std;class gps_posit原创 2012-08-29 17:45:29 · 2394 阅读 · 0 评论 -
面试题整理-从数组中删除指定元素
题目:陈利人:#Facebook面试题#这是一个编程题,动手做做才会有体会。给一个数组和一个值,从数组中删除这个指定的值的所有出现,并且返回新的数组的长度。size_t remove_elem(T* array, size_t len, T elem) {}。解题:首先可以想到的是,用额外用一个数组。遇到不同的元素,就把此元素拷至额外的数组中。实际上,很快就可以发现原创 2012-10-25 12:32:27 · 3159 阅读 · 0 评论 -
面试题整理-链表的几个微操
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 · 2284 阅读 · 0 评论 -
面试题整理-大数求和
题意很简单,就是求两个任意整数之和。原题在:http://acm.hdu.edu.cn/showproblem.php?pid=1002首先说一下正确的思路:第一步:输入的处理:如果输入是00000123344需要处理为123344。函数为:string &_del_zeros_before_dot(string &a){ if (a.len原创 2012-05-09 20:17:22 · 5065 阅读 · 0 评论 -
面试题整理-两个栈实现队列
题目用两个栈实现队列。 解法准备两个栈。一个是input, 一个是output。1、入栈:直接用input.push()2、出栈:如果output非空。则利用output出栈。 如果output为空。则把input中的元素全部pop至output栈中。再利用output出栈。 说得简单一点就是从input栈进去,从ouput栈出去原创 2012-10-26 16:44:07 · 2448 阅读 · 0 评论 -
面试题整理-重建二叉树
题目根据输入的前序遍历和中序遍历。重建一棵二叉树。解法:其实求解很简单。关键在于求出长度。假设函数的形式如同:templatenode *build(const T *pre, const T *mid, const int n);那么pre[0]肯定是树的根,可以把中序遍历分为两部分。一部分长度为A,另外一个长度为B。那么pre的构成则是。pre[0]--原创 2012-10-24 15:26:52 · 2116 阅读 · 0 评论 -
面试题整理-线性时间求最长回文子串
Longest Palindromic SubstringGiven a string S, find the longest palindromic substring in S. You may assume that the maximum length ofS is 1000, and there exists one unique longest palindromic substr原创 2011-11-17 21:37:57 · 1478 阅读 · 0 评论 -
面试题整理-斐波那契数列
这个很好。其实也就是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 · 3725 阅读 · 0 评论 -
面试题整理-整数的n次方
题意:求一个整数的正整数次方。原创 2014-04-14 09:37:48 · 2107 阅读 · 0 评论