C语言实现O(n)时间复杂度计算相邻名次成绩最大差异
#include <stdio.h>
int fun(int D[], int N) { if (N < 2) { return 0; }
int max_diff = 0;
int max_score = D[0];
for (int i = 1; i < N; i++) {
if (D[i] > max_score) {
max_score = D[i];
} else {
int diff = max_score - D[i];
if (diff > max_diff) {
max_diff = diff;
}
}
}
return max_diff;
}
int main() { int D[] = {90, 85, 95, 80, 75}; int N = sizeof(D) / sizeof(D[0]);
int result = fun(D, N);
printf('Max difference: %d\n', result);
return 0;
}
原文地址: http://www.cveoy.top/t/topic/htMy 著作权归作者所有。请勿转载和采集!