题解 | #合并区间#

合并区间

http://www.nowcoder.com/practice/69f4e5b7ad284a478777cb2a17fb5e6a

比较简洁易懂的写法,没申请新的空间。

int cmp(const void *a, const void *b)
{
    return (((struct Interval*)a)->start - ((struct Interval*)b)->start);
}
 
struct Interval* merge(struct Interval* intervals, int intervalsLen, int* returnSize ) {
    int i, k = 1, returnLen = intervalsLen;
    qsort(intervals, intervalsLen, sizeof(struct Interval), cmp);
     
    for (i = 1; i < intervalsLen; i++) {
        if (intervals[i].end <= intervals[i-k].end) {
            returnLen--;
            k++;
        } else if (intervals[i].start <= intervals[i-k].end) {
            intervals[i-k].end = intervals[i].end;
            returnLen--;
            k++;
        } else {
            intervals[i-k+1].start = intervals[i].start;
            intervals[i-k+1].end = intervals[i].end;
        }
    }
 
    *returnSize = returnLen;
    return intervals;
}
全部评论

相关推荐

生命诚可贵:先不说内容怎么样 排版就已经太差劲了 第一眼看不到重点,第二眼已经没有再看的耐心了, 篇幅占的太满了 字体不要用灰色 观感不好 想重点突出的黑色加粗就可以了 多列要点 少些大段的句子 项目经历把项目用的技术要点列出来,光写个python plc什么的太宽泛了 自我评价也有点偏多
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务