运行结果是Time Limit Exceeded,算法如何改进呢?求指教
#include<stdio.h>
#include<stdlib.h>
main()
{
int i,j,n,flag,max=0,result=0,*a;
scanf("%d",&n);
a=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
scanf("%d",a+i);
for(i=0;i<n-1;i++)
{
flag=0;
for(j=i;j<n;j++)
{
if(a[i]==a[j])
flag++;
}
if(flag>max)
{
max=flag;
result=a[i];
}
if(flag==max && a[i]<result)
result=a[i];
}
printf("%d\n",result);
return 0;
}