llllmz

导航

435. 无重叠区间c

typedef struct node{
    int left;
    int right;
}bounds;

int cmp(const void* a,const void* b){
    bounds* x=(bounds*)a;
    bounds* y=(bounds*)b;
    if(x->right > y->right ) return 1;
    return -1;
}

int eraseOverlapIntervals(int** intervals, int intervalsSize, int* intervalsColSize) {
    *intervalsColSize=intervalsSize;
    bounds* b=(bounds*)malloc(sizeof(bounds)*intervalsSize);
    for(int i=0;i<intervalsSize;i++){
        b[i].left=intervals[i][0];
        b[i].right=intervals[i][1];
    }
    qsort(b,intervalsSize,sizeof(bounds),cmp);
    int sum=0;
    long min=LONG_MIN;
    for(int i=0;i<intervalsSize;i++){
        if(b[i].left >= min){
            sum++;
            min=b[i].right;
        }
    }
    return intervalsSize-sum;
}  

posted on 2024-03-17 16:12  神奇的萝卜丝  阅读(13)  评论(0)    收藏  举报