![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试常问-算法
折叠-smile
这个作者很懒,什么都没留下…
展开
-
给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数问题:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。解答:假设我们要等概率生成一个3位的10进制数(000 - 999),我们可以在 随机生成整数0到9的函数 基础上,随机生成3个数字组成三位数就得到了结果。这里类似,我们首先必须认识到:任何一个数都可以用5进制的数来表示,如12 = 5进制转载 2012-09-29 22:05:57 · 858 阅读 · 0 评论 -
编程之美2.5 寻找第k大的数
参考+理解 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,觉得很好,推荐给大家。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。(注意这组数中可能有重复值) 解法1:我们可以对这个乱序数组按照从大到小先行排序原创 2012-11-09 20:44:42 · 10344 阅读 · 0 评论 -
【编程之美2.7】求最大公约数
int gcd(int x,int y){ if(x<y) return gcd(y,x); if(y==0) return x; else { //x是偶数 if(x%2==0) { if(y%2==0) return (gcd(x>>1,y>>1)<<1); else return gcd(x>>1,y);原创 2012-11-11 14:52:21 · 433 阅读 · 0 评论 -
【编程之美2.8】找符合条件的整数
题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0.解决这个问题首先考虑对于任意的N,是否这样的M一定存在。可以证明,M是一定存在的,而且不唯一。简单证明:因为 这是一个无穷数列,但是数列中的每一项取值范围都在[0, N-1]之间。所以这个无穷数列中间必定存在循环节。即假设有s,t均是正整数,且s,所以例如,取N=3转载 2012-11-11 18:00:11 · 560 阅读 · 0 评论 -
什么是NP问题
什么是NP问题概念:在计算机学科中,存在多项式时间的算法的一类问题,称之为P类问题;而像梵塔问题、推销员旅行问题、(命题表达式)可满足问题这类,至今没有找到多项式时间算法解的一类问题,称之为NP类问题。拿推销员旅行问题为例,假设推销员亨利有向6个城市推销公司产品的任务,并规定了一个旅行预算。他手中有一张航班票价表,他要从A城开始走遍图中的6个城市后返回A城,并且不超出预算,请你帮他找出转载 2012-11-04 17:24:18 · 1419 阅读 · 0 评论 -
从1到n的一个序列依次入栈,则一共可能有多少种出栈方式?
这个问题属于卡特兰数(h(n)=C(2n,n)/(n+1) (n=1,2,3,...))的应用,共有c(2n,n)-c(2n,n+1)=1/(n+1)*c(2n,n)中方式出栈。对于每一个数来说,必须进栈一次、出栈一次。我们把进栈设为状态‘1’,出栈设为状态‘0’。n个数的所有状态对应n个1和n个0组成的2n位二进制数。由于等待入栈的操作数按照1‥n的顺序排列、入栈的操作数b大于等于出栈的操作转载 2012-11-09 23:43:36 · 1747 阅读 · 0 评论 -
两个有序序列的共同元素
问题:给定两个已排序序列,找出共同的元素.设分别为A,B,数组长度分别为M,N方法1:定义两个指针分别指向序列的开始。如果指向的两个元素相等,则找到一个相同的元素;如果不等,则将指向较小元素的指针向前移动。重复执行上面的步骤,直到有一个指针指向序列尾端。大致的code:void CommonElem(const int *A,int ASize,const int *B,int转载 2012-11-09 21:47:26 · 1042 阅读 · 0 评论 -
逆转一个整数的二进制表示问题
1 //解法一2 #define UNSIGNED_BITS_COUNT 323 unsigned int BitRev3(unsigned int input) 4 { 5 unsigned int ret, i; 6 for(ret = i = 0; i UNSIGNED_BITS_COUNT; i++, input = input >> 1) 7转载 2012-11-09 23:26:09 · 376 阅读 · 0 评论 -
发帖水王
问题描述:Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗?书中第一种方法是先对ID进转载 2012-10-22 16:43:58 · 3752 阅读 · 0 评论