作者:boxertony // vc6下编译通过// 为使用qsort进行数据比较int cmp(const void*x, const void *y){ return (*(int*)x - *(int*)y);}int MaxVisitors(int X[], int Y[], int n){ qsort((void*)X, n, sizeof(int), cmp); qsort((void*)Y, n, sizeof(int), cmp); int i, j; int start_pos = 0; // 进校循环起始位置 int max = 0; // 最大车辆数 for(i=0; i<n; ++i) { for(j = start_pos; j<n; ++j) { if(X[j] >= Y[i]) break; } max = max<j-i?j-i:max; // 只需要掌握在本时刻之前有多少辆车进入校园,多少辆出校园即可。 // j代表进入的车辆数,i代表出去的车辆数,二者之差就是本时刻 // 之前校园内的车辆数。 if(j >= n) // 进校情况循环完毕,则可以退出 break; start_pos = j; } return max;}

评论