一组数字1-n,随机取走3个,求被取走的数【腾讯前端面试题】

本来是搜索as3的相关资料(工作重心已经由前端开发转向webgame开发),在看帖子的时候又看到那道“腾讯前端面试题目”了,以前看到这些题目都不会太注意--感觉实际生产中不太实用。

今天也不知道哪根筯不对,鉴于之前写过那篇《从10W个数中随机抽走2个数,求出那两个数是多少 》 看完题目,想一想呢,似乎套用一下那个公式就好了。那篇文章使用的是

x + y = b;

x * x + y * y = c

解上述二元方程便可求解,那三个数,差不多类似

x + y + z = a;

x * x + y * y + z * z = b;

x * x * x + y * y * y + z * z * z = c;

但发现一个问题,解三元三次方程的时候容易出问题,所以这种思路并不是解这道题目比较明智的方法 :(

无论怎样,看完这道题目,我就在想,我只想使用一次循环就搞定它。因为曾经有过面试腾讯的经历,所以既然出这道题,肯定是可以只使用一次循环便可以得到结果的:)。当然使用两次循环是很容易求出结果的…

 

重新再读一遍题目,1~n个不重复的数 --- 如果把它当数据,那么它的值与数组的索引有对应关系arr[1] = 1… OK,只要这一个信息就可以想到办法实现它,直接先上截图。

 

IE8下的显示:

image

Chrome (ver 17.0.963.2)下:

image

Opera(ver 11.64)下:

image

Firefox(ver 10.0.2)下(10ms以内,有所波动,但不会超过10ms):

image

 

在线查看/运行示例代码:

posted @ 2012-06-30 17:31  meteoric_cry  阅读(1322)  评论(3编辑  收藏  举报