• 【leetcode】56. 合并区间


    int cmp(const void*a, const void*b){
        return (*(int**)a)[0] > (*(int**)b)[0];
    }
    int** merge(int** intervals, int intervalsSize, int* intervalsColSize, int* returnSize, int** returnColumnSizes){
        int** arr = (int**)calloc(intervalsSize, sizeof(int*));
        *returnSize = 0;
        *returnColumnSizes = (int*)calloc(intervalsSize, sizeof(int));
        qsort(intervals, intervalsSize, sizeof(int*), cmp);
        for (int i = 0; i < intervalsSize; i++){
            if (i == intervalsSize - 1 || intervals[i][1] < intervals[i + 1][0]){
                arr[(*returnSize)] = (int*)calloc(2, sizeof(int*));
                arr[(*returnSize)][0] = intervals[i][0];
                arr[(*returnSize)][1] = intervals[i][1];
                (*returnColumnSizes)[(*returnSize)++] = 2;
            }
            else if (intervals[i][1] >= intervals[i + 1][0]){
                intervals[i + 1][0] = intervals[i][0];
                intervals[i + 1][1] = (intervals[i][1]>intervals[i + 1][1]) ? intervals[i][1] : intervals[i + 1][1];
            }
        }
        return arr;
    }
  • 相关阅读:
    c++中for的四种用法
    同步
    排列算法(reverse...rotate...next_permutation)
    指针
    const的使用
    const_cast
    c++设计模式——单例模式
    c++中的流
    c++从string类型转换为bool类型
    结构体字节对齐方式
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14118336.html
Copyright © 2020-2023  润新知