在我的面试中遇到这个问题。
我的回答是:
我怀疑这个问题的预期答案是什么?如果它在单cpu中运行(没有多线程模式),那么单线程应该比多线程更快吗?
非常感谢。
发布于 2011-09-28 18:37:23
刁钻的问题,也许-看看你能不能跳出盒子去思考?
如果它们是连续的,如标题中所指出的,并且以n开头,那么:
final long BILLION = 1000000000;
long answer = (BILLION * n) + ( BILLION*BILLION + BILLION ) / 2;这在10亿左右的地方起作用--在那之后,它会溢出。
不用说,我看不出多线程有多大的好处!
发布于 2011-09-28 18:34:08
我对你的回答非常不满意。(也许我误解了这个问题。)
更详细的答案是:给定参数i和j,其中我想要i,i+1,i+2,…,j-2,j-1,j be之和。
线程1中的
一定要在算法中使用BigInteger。
我猜如果i和j是非常大的数字,那么多线程将比单线程更快。但我看不出超过两个线程的优势
发布于 2011-09-28 18:44:48
http://businessmajors.about.com/od/gmatpracticequestions/a/GMATtest1.htm
我想,面对这个问题,我可能会回答:“我会先研究这个问题,因为我猜想有一种公式化的解决方案,它能比蛮力法更快地给出答案。数学家们已经想出了解决各种聪明小问题的公式。找到一位专家来快速、高效地解决问题,没什么好丢脸的。”
当然,在一次面试中,谁有时间给出这样的回答呢?
更新:哎呀,我又读了你的问题,我看到面试官强迫你使用线程之类的东西。尽管如此,我可能已经指出,许多蛮力问题的解决要优雅得多,稍微有点奥数。告诉他使用并行线程运行浏览器,打电话给谷歌,进行搜索,并在20秒内解决问题。
https://stackoverflow.com/questions/7587676
复制相似问题