llllmz

导航

452. 用最少数量的箭引爆气球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 findMinArrowShots(int** points, int pointsSize, int* pointsColSize){
    *pointsColSize=2;
    bounds* b=(bounds*)malloc(sizeof(bounds)*pointsSize);
    for(int i=0;i<pointsSize;i++){
        b[i].left=points[i][0];
        b[i].right=points[i][1];
    }
    qsort(b,pointsSize,sizeof(bounds),cmp);
    int sum=0;
    long min=LONG_MIN;
    for(int i=0;i<pointsSize;i++){
        long t=b[i].left;
        if(t>min){
            sum++;
            min=b[i].right;
        }    
    }
    return sum;
}

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