C/C++の宿題を片づけます 50代目
■ このスレッドは過去ログ倉庫に格納されています
0232デフォルトの名無しさん
2005/09/16(金) 17:18:47間違ってなかったらO(n^2/2)位かな?
void search(int* a, int ln, int t, int startEnd[2]) {
int m, n, M, N;
int unko;
startEnd[0]=startEnd[0]=-1;
for(M=0, N=ln; M < N;) {
int sum;
for(m=M, sum=0; m < N; m++) {
int sAbs;
sum+=a[m];
if(unko > abs((sAbs = (sum - t)))) {
unko = sAbs;
startEnd[0]=M; startEnd[1]=m;
}}
N--;
for(n=N, sum=0; n > M; n--) {
int sAbs;
sum+=a[n];
if(unko > abs((sAbs = (sum - t)))) {
unko = sAbs;
startEnd[0]=N; startEnd[1]=n;
}}
M++;
if(unko == t) break;}}
■ このスレッドは過去ログ倉庫に格納されています