标签:
1 #include<iostream> 2 using namespace std; 3 4 int a[2000000]; 5 6 int main() 7 { 8 int n,i,j,max=0,min=99999; 9 cin>>n; 10 for(i=0;i<n;i++) 11 cin>>a[i]; 12 for(i=0,j=n-1;i<=j;i++,j--) 13 { 14 if(a[i]<a[j]) 15 { 16 if(a[i]<min) 17 min=a[i]; 18 if(a[j]>max) 19 max=a[j]; 20 } 21 else 22 { 23 if(a[j]<min) 24 min=a[j]; 25 if(a[i]>max) 26 max=a[i]; 27 } 28 } 29 cout<<max<<‘ ‘<<min<<endl; 30 return 0; 31 }
注:两个数比较,则那个大的数,不可能成为这组数中最小的数,同理,那个小的数,不可能成为这组数中最大的数。从常用的 2*n 次比较,变成了(n/2)*3=1.5*n 次比较。
SWUST OJ Gold Nuggets Distribution(0490)
标签:
原文地址:http://www.cnblogs.com/haveyoueverbeen/p/4488793.html