统计数量而原始均为0,所以直接

理解有问题

diff[i]+=diff[i-1];
#define f(i, a, b) for (int i = a; i <= b; i++)

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* corpFlightBookings(int** bookings, int bookingsSize, int* bookingsColSize, int n, int* returnSize){
int *diff=(int *)malloc(sizeof(int)*(n+1));
f(i,0,n)
diff[i]=0;
f(i,0,bookingsSize-1){
    diff[bookings[i][0]-1]+=bookings[i][2];
    diff[bookings[i][1]]-=bookings[i][2];
}
f(i,1,n-1)
diff[i]+=diff[i-1];
*returnSize=n;
return diff;
}
此文章已被阅读次数:正在加载...更新于