阿里巴巴面试三题目其二的个人理解
来源:互联网 发布:自己的淘宝等级怎么看 编辑:程序博客网 时间:2024/05/21 17:43
阿里巴巴面试题目引入:http://topic.csdn.net/u/20091024/12/989417aa-60e9-45d1-a96f-a623695fc6d7.html?31636
1. 有无序的实数列V[N],要求求里面大小相邻的实数的差的最大值,关键是要求线性空间和线性时间
2. 25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马
3. 有一个函数int getNum(),每运行一次可以从一个数组V[N]里面取出一个数,N未知,当数取完的时候,函数返回NULL。现在要求写一个函数int get(),这个函数运行一次可以从V[N]里随机取出一个数,而这个数必须是符合1/N平均分布的,也就是说V[N]里面任意一个数都有1/N的机会被取出,要求空间复杂度为O(1)
第二题:
这是一个策略题,由于其只取最快的马匹,可以理解为贪心算法,每次都选用参加次数最少的马匹进行比赛。
现在举例进行说明:
比如现在有五匹马,赛场每次只允许两匹马同时进行比赛,请问最少举行多少场比赛,可以抉择出最快的马儿?
现在我们标记这五匹马为:
1------2------3------4------5
首先选择1------2,3------4进行两场比赛,同时可以淘汰1------2,3------4两场中各一匹
为了说明问题,可以假设优胜马匹为1,4
那么剩余马匹为1(1),4(1),5(0)
下面选择三个马匹中的比赛场次最少的进行比赛
所以下场比赛一定有5,从1,4中任选一个,假定为4
3:4<------>5 假定优胜为4
此时再举行一次就可以选出优胜的马匹。
由上面的推导,共需要(r为比除后的余数+商):
[5/2]=2------r=3
[3/2]=1------r=2
[2/2]=1------r=1
获得最快的马匹,所以共需 2+1+1=4场比赛。
针对题目数据:
[25/5]=5-----r=5+0=5
[5/5]=1------r=1+0=1
所以共需6场比赛。
- 阿里巴巴面试三题目其二的个人理解
- 阿里巴巴 的DBA 面试题目
- 个人总结面试题目三
- 阿里巴巴 DBA 面试题目
- 阿里巴巴面试题目集合
- 阿里巴巴Java面试题目
- 阿里巴巴暑期实习生面试题目
- 阿里巴巴常考面试题目
- 个人不熟悉的面试题目(操作系统)
- 阿里巴巴Web前端面试的一道JS题目,求解答!!!
- 一道面试题目,关于this的理解
- 2014阿里巴巴面试题目南京站
- 阿里巴巴校招面试题目集锦
- 微软公司的三道面试题目
- 微软公司的三道面试题目
- 最全的java面试题目三
- C#简单的面试题目(三)
- C#简单的面试题目(三)
- ORA-02291:parent key not found
- POJ3712Edges and More Edges
- android.webkit.WebView 使用 SINGLE_COLUMN layout algorithm 导致程序意外退出的解决办法
- 設計カバレッジで漏れの確認
- python 俄罗斯方块
- 阿里巴巴面试三题目其二的个人理解
- PowerDesigner12.5下载及破解
- busybox使用
- 梦中思伊人
- setw(0)和setprecision(n)的用法 -ZT
- Struts1.x架构
- wcf configuration
- 检测所有进程
- Python 的C语言扩展