合并区间
int compare(const void *a,const void *b){ return *(int*)a>*(int*)b; } int **merge(int **intervals, int intervalsSize, int *intervalsColSize, int *returnSize, int **returnColumnSizes) { qsort(intervals, intervalsSize, sizeof(int **), compare); int mergeCount=0,pos=0,i; for(i=1;i<intervalsSize;i++){ if(intervals[i][0]<=intervals[pos][1]){ intervals[pos][1]=intervals[pos][1]>intervals[i][1]?intervals[pos][1]:intervals[i][1]; mergeCount++; }else{ pos++; intervals[pos][0]=intervals[i][0]; intervals[pos][1]=intervals[i][1]; } } *returnSize=intervalsSize-mergeCount; for(i=0;i<2;i++){ returnColumnSizes[0][j]=2; } return intervals; }