时间复杂度较差的一个
http://www.cnblogs.com/daniagger/archive/2012/03/22/2412683.html
View Code
1 int BestSolution(int* arr,int n) 2 { 3 int idx=1; 4 int min=0; 5 for(int i=1;i<n;++i) 6 min+=arr[i]*i; 7 for(int i=1;i<n;++i) 8 { 9 int calc=0; 10 for(int j=0;j<i;++j) 11 calc+=arr[j]*(i-j); 12 for(int j=i+1;j<n;++j) 13 calc+=arr[j]*(j-i); 14 if(calc<min) 15 { 16 min=calc; 17 idx=i+1; 18 } 19 } 20 return idx; 21 }
较好的一个
View Code
1 int BestSolution(int* arr,int n) 2 { 3 int n1,n2,n3; 4 int idx=0; 5 6 n1=0; 7 n2=arr[0]; 8 n3=0; 9 for(int i=1;i<n;++i) 10 n3+=arr[i]; 11 12 for(int i=1;i<n;++i) 13 { 14 if(n1+n2<n3) 15 { 16 idx=i; 17 n1+=n2; 18 n3-=arr[i]; 19 n2=arr[i]; 20 } 21 else 22 break; 23 } 24 return idx; 25 }