两道面试题

honghu069 2010-11-30 01:40:33
1 n个人头上带着帽子,帽子的颜色有三种,红、黄、蓝,后面的人可以看到前面人帽子的颜色,而前面的人可以听到后面的人说的话,也知道说话的是第几个人,那么让每个人说自己头上帽子的颜色,说错就挂了,事先n个人可以商量一种策略,使存活下来的人最多,如何制定策略使活下来的人数最多?

面试的时候只想到使前n-2个人必定存活下来的策略,面试管说存在可以使前n-1个人必定存活下来的策略 = =

2 排序
有n^2个数,分别为
1/1 1/2 1/3 ... 1/n
2/1 2/2 2/3 ... 2/n
3/1 3/2 3/3 ... 3/n
.................
n/1 n/2 n/3 n/n

要求O(n^2)的排序算法,基本上就是要一个线性的算法了
...全文
335 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
flysouding 2010-11-30
  • 打赏
  • 举报
回复
第一题,倒数第一人说倒数第2人的帽子颜色,依次类推,这样不是最简单吗
第2题,我们可以看到A(i,j) = i/j;谷A(i,j-1) < A(i,j+1);所以在斜对角线上方的数字都小于1,可以按照从左上方到右下方的顺序打印,在些对角线下方,倒过来打印。
例如:
1/1 1/2 1/3 1/4
2/1 2/2 2/3 2/4
3/1 3/2 3/3 3/4
4/1 4/2 4/3 4/4

最终打印顺序为:
1/4 1/3 2/4 1/2 2/3 3/4 1/1 2/2 3/3 4/4 4/3 3/2 2/1 4/2 3/1 4/1
JohnsonElizeee 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oo 的回复:]

红、黄、蓝 对应 0,1,2
最后一个人把前面所有的数加起来MOD 3,结果对应到红、黄、蓝
[/Quote]
顶一个 :)
wangbinykit 2010-11-30
  • 打赏
  • 举报
回复
排序的那个还需要排吗?
对角线上面的都小于1,然后是1/n最小,下面的都大于一。
然后是不是按照斜线输出就行了
JohnsonElizeee 2010-11-30
  • 打赏
  • 举报
回复
什么公司题啊,这么难!

第一题,如果N个人商量时都是戴着帽子的就比较好办了,所以,我想题目的意思是不是这样的:

有N个人排成一行,N个帽子,帽子的颜色有三种:红,黄,蓝。现给每个人戴上一顶帽子,让每个人说自己头上帽子的颜色,说错就被KILL掉。
如果给每个人戴上帽子,后面的人可以看到前面人帽子的颜色,
而前面的人可以听到后面的人说的话,也知道说话的人是第几个人。
在被戴上帽子前,N个人可以商量一种报颜色的策略,使存活下来的人最多,
问如何制定策略使活下来的人数最多?

绿色夹克衫 2010-11-30
  • 打赏
  • 举报
回复
不好意思,看错题了,不是异或,是oo说的mod 3
绿色夹克衫 2010-11-30
  • 打赏
  • 举报
回复
异或一下,可以保证活n-1个,第n个人说前n-1个人的xor后的值,之后每个人可以根据前面人xor后的值,算出自己的值。
oo 2010-11-30
  • 打赏
  • 举报
回复
红、黄、蓝 对应 0,1,2
最后一个人把前面所有的数加起来MOD 3,结果对应到红、黄、蓝
fire_woods 2010-11-30
  • 打赏
  • 举报
回复
1. 由于排序大于1的部分与小于1的部分完全是一样的, 所以我们先只排序小于1的部分, 所有大于1的等小于1的排完了以后倒序就可以了.

2. 两个不相等的数的最小间隔, 任意|a/b-c/d|=|(ad-bc)|/bd>=1/bd>1/(n*n)
3. 将0-1划分成1/(n*n)为单位的小格子, 两个数除非相等, 否则必落在不同的区域内.
4. 用这个做桶就是了, 剩下的大家应该都懂的.
lingyue1012 2010-11-30
  • 打赏
  • 举报
回复
弱弱的问一下:第一题什么意思。。。。。。
  • 打赏
  • 举报
回复
坐等大牛解答...
oyipeng 2010-11-30
  • 打赏
  • 举报
回复
谢谢你的分享!
honghu069 2010-11-30
  • 打赏
  • 举报
回复
囧,第二题没这么简单
对角线打印的思路是错的,下面就是一个反例

5
1/1 1/2 1/3 1/4 1/5
2/1 2/2 2/3 2/4 2/5
3/1 3/2 3/3 3/4 3/5
4/1 4/2 4/3 4/4 4/5
5/1 5/2 5/3 5/4 5/5

1/5 1/4 1/3 2/5 1/2 2/4 3/5 2/3 3/4 4/5 1/1 2/2 3/3 4/4 5/5 5/4 4/3 3/2 5/3 2/1
4/2 5/2 3/1 4/1 5/1

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧