随笔分类 -  c语言

人人校招笔试题
摘要:9月22日,人人校招笔试题 1、给定一个有序数组a,长度为len,和一个数X,判断A数组里面是否存在两个数,他们的和为X,bool judge(int *a, int len, int x),存在返回true,不存在返回false 2、给定有n个数的数组a,其中超过一半的数为一个定值,在不进行排序、不开设额外数组的情况下,以最高效的算法找到这个数:int find(int *a, int n) 阅读全文

posted @ 2013-09-29 14:49 大卫david 阅读(3143) 评论(28) 推荐(1) 编辑

腾讯2014软件开发笔试题目
摘要:9月21日,腾讯2014软件开发校招-简答题-广州 1、请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在 中所处的位置和变化。队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要即时反馈到用户。 2、A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效 阅读全文

posted @ 2013-09-26 16:12 大卫david 阅读(10274) 评论(47) 推荐(3) 编辑

阿里巴巴笔试题选解
摘要:阿里巴巴部分笔试题目选解: 1、有三个结点的,可以构成多少个种叉树? 2、一副牌52张(去掉大小王),从中抽取两张牌,一红一黑的概率是多少? 编程题: 3、设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。情特别注意优化时间复杂度的常数。 4、已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,是的组成的三元组距离最小。三元组的距离定义是:假设a[i]、b[j]和c[k]是一个三元组,那么距离为: Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ j ] – c[ k ]|) 请设计一个求最小三元组距离的最优算法,并分析时间复杂度。 5、在黑板上写下50个数字:1至50.在接下来的49轮操作中,每次做如下动作:选取两个黑板上的数字a和b,擦去,在黑板上写|b - a|。请问最后一次动作之后剩下数字可能是什么?为什么? 阅读全文

posted @ 2013-09-24 15:10 大卫david 阅读(5080) 评论(29) 推荐(2) 编辑

创新工场笔试题目
摘要:1.输入一个整型无序数组,用堆排序的方法是数组有序 2.求一个正整数的开方,要求不能使用库函数sqrt,结果精度在0.01即可 3.给定一个矩阵int matrixA[m][n],每行没列都是增序的,实现一个算法寻找矩阵中的某个元素element 阅读全文

posted @ 2013-09-23 17:00 大卫david 阅读(2562) 评论(12) 推荐(3) 编辑

二维数组---两个数和的最大值
摘要:problem: 给定一个二维数组,找两个数使其和为最大的,要求这两个数不同行不同列。 阅读全文

posted @ 2013-09-21 11:20 大卫david 阅读(715) 评论(0) 推荐(0) 编辑

平面直角坐标系---点坐标与多边形位置判断
摘要:给定一个平面直角坐标系和一组数据,数据由一系列坐标点组成,形式如:(xi, yi),i = 1, 2, 3……, n; 给定的(xi, yi)可以组成一个封闭的多边形,现在给定一个坐标点(X, Y),请判断该点的位置:返回 1 表示在多边形内部,返回 0 表示在多边形边上,返回 -1 表示在多边形外部。 阅读全文

posted @ 2013-09-17 11:22 大卫david 阅读(1364) 评论(1) 推荐(1) 编辑

面试题目“ABCDE × 4 = EDCBA”新解法
摘要:题目详情:一个五位数字ABCDE*4=EDCBA,这五个数字不重复,请编程求出来.新思路是从逆向的思维来解答问题。 阅读全文

posted @ 2013-09-12 12:24 大卫david 阅读(2788) 评论(8) 推荐(0) 编辑

数组排序
摘要:给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序。求最少需要多少次交换,能把数组排成按1-n递增的顺序,其中,数组长度不超过100。 阅读全文

posted @ 2013-09-07 22:38 大卫david 阅读(455) 评论(0) 推荐(0) 编辑

经典问题----倒水
摘要:有两个容器,容积分别为A升和B升,有无限多的水,现在需要C升水。 我们还有一个足够大的水缸,足够容纳C升水。起初它是空的,我们只能往水缸里倒入水,而不能倒出。 可以进行的操作是: 把一个容器灌满; 把一个容器清空(容器里剩余的水全部倒掉,或者倒入水缸); 用一个容器的水倒入另外一个容器,直到倒出水的容器空或者倒入水的容器满。 问是否能够通过有限次操作,使得水缸最后恰好有C升水。 阅读全文

posted @ 2013-09-03 23:03 大卫david 阅读(1752) 评论(5) 推荐(0) 编辑

POJ1002 487-3279
摘要:POJ上面的一道题目,题目是:企业想拥有令人难忘的电话号码。要一个电话号码让人容易记住,方法之一是号码里面有一个难忘的单词或词组拼写。例如,您可以拨打TUT- GLOP拨打沃特卢大学。有时电话号码只有一部分是单词拼写。当你回到你的酒店,今晚你可以通过拨打310 - GINO吉诺订购比萨饼。另一种方法,设计的电话号码是一个难忘的方式分组数字。你可以通过拨打必胜客" 3个10 "的号码3-10-10-10 来订购比萨. 阅读全文

posted @ 2013-09-02 14:00 大卫david 阅读(643) 评论(1) 推荐(1) 编辑

POJ1007 DNA Sorting
摘要:序列“未排序程度”的一个计算方式是元素乱序的元素对个数。例如:在单词序列“DAABEC'”中,因为D大于右边四个单词,E大于C,所以计算结果为5。这种计算方法称为序列的逆序数。序列“AACEDGG”逆序数为1(E与D)——近似排序,而序列``ZWQM'' 逆序数为6(它是已排序序列的反序)。 你的任务是分类DNA字符串(只有ACGT四个字符)。但是你分类它们的方法不是字典序,而是逆序数,排序程度从好到差。所有字符串长度相同。 阅读全文

posted @ 2013-09-01 21:48 大卫david 阅读(545) 评论(0) 推荐(0) 编辑

建立信号基站
摘要:要建立一个信号基站服务n个村庄,这n个村庄用平面上的n个点表示。假设基站建立的位置在(X,Y),则它对某个村庄(x,y)的距离为max{|X – x|, |Y – y|}, 其中| |表示绝对值,我们的目标是让所有村庄到信号基站的距离和最小。 基站可以建立在任何实数坐标位置上,也可以与某村庄重合。 阅读全文

posted @ 2013-08-29 21:45 大卫david 阅读(1459) 评论(2) 推荐(1) 编辑

字符串消除
摘要:给定一个字符串,仅由a,b,c 3种小写字母组成。当出现连续两个不同的字母时,你可以用另外一个字母替换它,如 有ab或ba连续出现,你把它们替换为字母c; 有ac或ca连续出现时,你可以把它们替换为字母b; 有bc或cb 连续出现时,你可以把它们替换为字母a。 你可以不断反复按照这个规则进行替换,你的目标是使得最终结果所得到的字符串尽可能短,求最终结果的最短长度。输入:字符串。长度不超过200,仅由abc三种小写字母组成。 输出: 按照上述规则不断消除替换,所得到的字符串最短的长度。 例如:输入cab,输出2。因为我们可以把它变为bb或者变为cc。输入bcab,输出1。尽管我们可以把它变为aab -> ac -> b,也可以把它变为bbb,但因为前者长度更短,所以输出1。 函数头部: C/C++ int minLength(const char *s); Java: public class Main { public static int minLength(String s); } 阅读全文

posted @ 2013-08-27 13:24 大卫david 阅读(1355) 评论(20) 推荐(1) 编辑

回文字符串
摘要:回文字符串是指从左到右和从右到左相同的字符串,现给定一个仅由小写字母组成的字符串,你可以把它的字母重新排列,以形成不同的回文字符串。 输入:非空仅由小写字母组成的字符串,长度不超过100; 输出:能组成的所有回文串的个数(因为结果可能非常大,输出对1000000007取余数的结果)。 例如:输入"aabb" 输出为2(因为“aabb”对应的所有回文字符串有2个:abba和baab) 函数头部 c: int palindrome(const char *s); c++ int palindrome(const string &s); java public static int palindrome(String s) ; 阅读全文

posted @ 2013-08-07 16:37 大卫david 阅读(1314) 评论(0) 推荐(1) 编辑

C语言的几个有趣问题
摘要:这是几个C语言的比较有趣的问题,比较适合初学者学习! 阅读全文

posted @ 2013-07-26 12:35 大卫david 阅读(1157) 评论(29) 推荐(1) 编辑

导航