我已经编写了Jolly Jump 问题的解决方案代码(ACM 10038 uva)。我的代码如下:
#include<stdio.h>
#include<stdlib.h>
int main(){
int count=0;
int Number[3000]={0};
int Absolute[3000]={0};
bool flag=true;
while(scanf("%d",&count)){
for(int i=0;i<count;++i){
scanf("%d",&Number[i]);
Absolute[i]=0;
}
for(int j=0;j<count-1;++j){
int diff=Number[j]-Number[j+1];
if(diff<0)diff*=-1;
Absolute[diff]=1;
}
flag=true;
for(int x=1;x<count;++x){
if(Absolute[x]!=1){
flag=false;
break;
}
}
if(flag)printf("Jolly\n");
else printf("Not Jolly\n");
}
return 0;
}
但提交的结果是超出时间限制。为什么?如何修改我的代码以降低运行时间?