合并区间

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;
}

 

posted @ 2020-04-17 11:30  dreamy_java  阅读(256)  评论(0编辑  收藏  举报