我爱的编程题
文章平均质量分 71
圆圆小金子
这个作者很懒,什么都没留下…
展开
-
随机数问题——基础知识必备
C++标准模板库规范每次插入操作都在O(log m)时间内完成,而遍历集合则需要O(m)时间,所以每次查找并插入一个元素的时间是O(mlog m).一些随机数的库函数:(以下来自百度百科)C库函数 rand():rand()函数是产生随机数的一个随机函数。C语言里还有srand()函数等。 (1)使用该函数首先应在开头包含头文件stdlib.h #include (2)在原创 2012-07-06 15:15:04 · 1819 阅读 · 0 评论 -
百度的一道有关随机数按照指定频率输出的题
输入:N(整数)输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节文件格式如下:字符串\t数字\n说明:每行为1条记录;字符串中不含有\t。数字描述的是该字符串的出现概率,小于等于100的整数。多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;如果文件格式错误,程序也退出。要求:编写一个程序,输入为N(正整原创 2012-06-30 20:38:14 · 1251 阅读 · 0 评论 -
优先级队列+堆
优先级队列 是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。优先队列是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有: Create ( ):创建一个空的优先队列 Size ( ):返回队列中的元素数目 Max ( ):返回具有最大优先权的元素 I n s e rt (x):将x插入队列原创 2012-07-02 16:19:13 · 552 阅读 · 0 评论 -
求无序数组的中位数
转自:http://blog.csdn.net/zdl1016/article/details/4676882中位数即是排过序后的处于数组最中间的元素。 不考虑数组长度为偶数的情况。设集合元素个数为n。简单的想了下:思路1)(这个方法不行,因为面试时真正要求是不排序) 把无序数组排好序,取出中间的元素 时间复杂度 采用普通的比较排转载 2012-07-12 21:43:58 · 3781 阅读 · 1 评论 -
100层楼和两个玻璃球的问题
有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层???2012年腾讯实习生笔试的时候,有一个智力题跟这个一样,只不过就是描述不一样而已。我记得大概是这样:1到100之间有一个数字,一个人猜,另外一个人给一些辅助信息,如果这个人猜的数比指定的数小,则会告诉他小了,如果比指定的数大了,则会告诉原创 2012-07-14 21:45:57 · 30974 阅读 · 4 评论 -
百度的一期笔试题
题目和解答转自百科中的一篇文章,但是具体答案以及给分标准是否权威,不得而知,答案和下面我的分析仅供参考,出现任何后果金子概不负责哦。第一题 简答(30分)1. 请写出C++ STL中vector的相关问题。(20分)(1)在调用成员函数push_back时,其内部的内存分配是如何进行的。(5分)(2)调用成员函数clear时,内部是如何具体实现的,如果想将其内存释放转载 2012-07-04 10:56:04 · 1123 阅读 · 0 评论 -
python的两道练习题
这两个都是刚学python的时候写的程序,现在挖出来让别人看看,我的程序里面c的痕迹太重了,尤其第一个1.平衡点问题平衡点:比如int[] numbers = {1,3,5,7,8,25,4,20}; 25前面的总和为24,25后面的总和也是24,25这个点就是平衡点;假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点要求:返回任何一个平衡点金原创 2012-07-24 22:01:13 · 1042 阅读 · 1 评论 -
面试题存储
1、python实现,如何判断今年是否为闰年判断一年是否为闰年的方法:判断闰年条件,满足年份模400为0,或者模4为0但模100不为0. 假设一台处理机一个时刻只允许加工一个任务,一个任务必须连续加工完成。给定任务集合T={T1,T2,…,Tn},任务之间无先后关系。所有任务加工的 最早起始时间为r1=原创 2012-07-10 21:06:44 · 2226 阅读 · 0 评论 -
快速排序-void qsort ( int a[], int n)
#includeusing namespace std;void qsort(int a[],int n){ if(n<=0) //n=0,表示只有一个元素,不用排序了 return ; int *p=a,*q=a+n; int t=*p;//哨兵 while(p<q) {原创 2012-06-28 11:57:51 · 2254 阅读 · 0 评论 -
某一游戏中有一把武器有1到9个等级,每次升级成功的概率为30%,失败的概率为70%,成功升1级,失败降1级,降到一级不能再降,升到9级不能再升,问1000次内升到9级的概率。
这是腾讯官方微博出题,半小时写出程序可当初级程序员:某一游戏中有一把武器有1到9个等级,每次升级成功的概率为30%,失败的概率为70%,成功升1级,失败降1级,降到一级不能再降,升到9级不能再升,问1000次内升到9级的概率。这个题目我大概在半个小时的时候写出了数学的函数表达式,因为读懂题目就花了很久。,但是经过仔细思考我已经有了思路,这是一道典型的动态规划的题目。问题的解要综合考虑子问题原创 2012-07-07 11:23:26 · 9545 阅读 · 0 评论 -
微软100题-求连续子数组之和的最大值+题目变形
求连续子数组之和的最大值:这个题很早前我就研究过了,百度实习面试的时候问了我一道类似的题目,就是给定两个数组和一个数,在两个数组中各取一个数,使其和为输入的值,也是该题目的一种变形,我上来就给出了一个最优的算法。然后计算时间复杂度,接着就被问的更难了,三个数组。。。 OMG,然后我就晕了,应该先说一个O(n^3)的实现的。然后再优化,但目前我还没有想到合适的优化办法。以上题目如果有什原创 2012-06-25 16:17:08 · 3379 阅读 · 2 评论 -
《编程珠玑》-第二章:寻找兄弟单词+电话簿功能 算法研究
寻找兄弟单词:这是我百度实习笔试的时候一道题目,面试的时候在HR的房间看到了我的试卷,发现这题我只得了两分。。。这两分还是因为我想到了用树结构,不过只是简单的26叉字典树。。。。 当时想到应该没有这么简单,可是时间紧迫阿。题目是这样的:兄弟单词(在《编程珠玑》一书中称为换位词),就是只使用项目的字母,不同的组合构成不同的单词deposit,dopiest,posited,topside就是一组翻译 2012-06-23 11:07:43 · 1540 阅读 · 0 评论 -
STL-学习笔记:关联容器
set:所有元素都会根据元素的键值自动被排序不能通过set的迭代器改变set的元素值。map:所有元素都会根据元素的键值自动被排序,map的所有元素都是pair,同时拥有key 和 value.map 不允许两个元素拥有相同的键值。注意:不能通过map的迭代器改变map的元素键值,因为键值涉及到map元素的排序规则,任意改变map元素键值将会严重破坏map组织,修改value则是可原创 2012-07-06 17:06:20 · 502 阅读 · 0 评论 -
STL-学习笔记:顺序容器之deque
vector 和 deque的区别?1、vector是单向开口的连续线性空间,deque是一种双向开口的连续线性空间。2、deque 允许常数时间内对头端进行元素的插入和删除操作。而vector在头端操作效率超级差。3、deque没有容量观念。因为deque是动态地分段连续空间组合而成,随时可以增加一段新的空间并链接起来。deque迭代器:并不是普通指针.deq原创 2012-07-06 15:38:00 · 633 阅读 · 0 评论 -
二维子数组之和的最大值
本题目是从一维的扩展过来的,题目:有一个二维M*N的二维数组,求连续的一片子数组(即组成了矩形)之和的最大值。思路一:这么题目最简单的方法都是利用穷举法,设矩阵的四个边界为i_min,i_max(上下边界),j_min,j_max(左右边界)。可以利用四层for循环来穷举子数组的边界值,时间复杂度为(M^2 * N^2),这还不算上求矩形的和。思路二: O(M^2 * N^2)的方法原创 2012-06-28 10:08:08 · 2751 阅读 · 2 评论 -
微软100题-求数组中的逆序对
求数组中的逆序对的个数:在数组a中如果a[i]>a[j].且i称为一个逆序数对,例如数组是7,5 ,6 ,4 则逆序对共有 7,5 7,6 7,4 5,4 6,4 五个逆序对,刚开始的时候没有思路,看了看解答之后发现,还是采用分治的思想,类似于用归并算法实现,空间复杂度为n,需要一个额外的数组来存储,时间复杂度为log2n(2是下标了,懒得打公式了)。具体的图解可看一下何海涛里原创 2012-06-25 11:27:23 · 1170 阅读 · 0 评论 -
腾讯2012实习生西安地区笔试题
话说腾讯的笔试题和百度笔试题不太一样,腾讯的有很多技术的题,还有一些组合数学的问题,组合数学的题我怕自己弄错,就用二维数组穷举求解的,浪费了很多时间,最后的加试题的那个其实很easy,只不过当时没有时间了,对于当时的我来说很久没有看技术的细节东西了,备受打击。百度的题完全是从思维、设计的角度出发,技术题只有一个就是c语言和c++里面动态分配内存的区别,还好我记得。其实对我自己满有信息了,毕竟偏思维转载 2012-07-25 16:26:27 · 8059 阅读 · 4 评论