【发布时间】:2016-10-06 19:31:57
【问题描述】:
这是我在hackerearth 的“生命、宇宙和一切”的代码
为什么“我的解决方案”比“最佳解决方案”慢,即使逻辑 用的是一样的!
事实上,我认为我的逻辑应该更快,因为我在n!=42 时打印了答案,但“最佳解决方案”必须首先检查n==42,然后在数组中插入元素(执行“else”部分)。
请告诉我为什么“最佳解决方案”更快。
my solution :-
#include <iostream>
using namespace std;
int main()
{
int n;
while(1)
{
scanf("%d",&n);
if(n!=42)
{
printf("%d\n",n);
}
else
break;
}
return 0;
}
Time Taken: 1.010669 seconds
---------------------------------------------------------
best solution:-
#include <iostream>
using namespace std;
int main()
{
int n,a[10001],i=0,j;
while(1)
{
cin>>n;
if(n==42)
break;
else
a[i++]=n;
}
for(j=0;j<i;j++)
cout<<a[j]<<endl;
return 0;
}
Time Taken: 1.004222 seconds
【问题讨论】:
-
这可能与刷新标准输出时的(特定于实现的)规则有关
-
1.输入是什么? 2. 你能发布你的测量代码吗?
-
hackerearth 举办编程竞赛(网站),但没有透露它如何衡量我们的代码。下面是对更多信息的样本输出请访问hackerearth网站: - 782 796 272 344 108 168 847 268 973 95 429 797 687 689 209 603 410 385 770 481 934 742 926 911 875 690 273 102 955 505 271 553 435 跨度>