今天我尝试解决一个Facebook 编程挑战赛 https://facebook.interviewstreet.com/recruit/challenges/。我遇到的挑战是“酒吧问题”,可以找到here https://github.com/alonsovidales/facebook-programming-challenges/tree/master/bar。在挑战过程中我的问题是理解他们提供的第一个例子。
问题可以概括如下:
N个好友正在玩游戏。他们每个人的面前都有一个数字列表。
N 个朋友中的每一个从他的列表中选择一个号码并将其报告给游戏管理员。然后游戏管理员对上报的数字进行排序,喊出第K大的数字。
您想知道游戏管理员可以喊出的所有可能数字的数量。
到那时,我以为我已经理解了这个问题,但随后他们提出了以下示例:
在给出的示例中,对于第一个测试用例 N = 3 和 K = 3。第一个人的列表是 {2 5 3},第二个人的列表是 {8 1 6},第三个人的列表是 {7 4 9}。在这种情况下,{4,5,6,7,8,9}中的所有数字都有机会成为第三大的所选数字。
所以我的问题是:
7、8、9怎么可能是第三大的选定数字呢?
在我看来,只有数字 {1, 2, 3, 4, 5} 可以是第三大数字,但也许我误解了算法。
我认为你是对的,他们对数字的排序方式是错误的。如果您想获得第三小而不是第三大,则建议的示例回复看起来像是正确的回复。也就是说,将它们从小到大排序,您会得到第三个。这不是问题中所说的(但英语不是我的母语,所以我可能会弄错)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)