s只争朝夕w 2020-11-07 12:01 采纳率: 0%
浏览 19

leetcode 56:区间合并求助!!!

哪位大佬帮我看看,我这么写有什么问题?明明执行都给过了,提交就报错。

/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
int compare(const void* a,const void* b);
int** merge(int** intervals, int intervalsSize, int* intervalsColSize, int* returnSize, int** returnColumnSizes){

    qsort(intervals,intervalsSize,sizeof(intervals[0]),compare);
    
    int** arr=(int**)malloc(sizeof(int*)*intervalsSize);
    int i,j,cnt;
    for(i=0;i<intervalsSize;++i)
    {
        arr[i]=(int*)malloc(*intervalsColSize*sizeof(int));
    }
    i=0;
    cnt=0;
    j=i;
    arr[cnt][0]=intervals[j][0];

    while(i<intervalsSize)
    {
        if(intervals[j][1]>=intervals[i][0])
        {
            ++i;
        }else{
            arr[cnt++][1]=intervals[i-1][1];
            j=i;
            arr[cnt][0]=intervals[j][0];
        }
    }
    arr[cnt++][1]=intervals[i-1][1];
    
    *returnSize=cnt;
    int* retColSize=(int*)malloc(sizeof(int)*cnt);
    for(i=0;i<cnt;++i)
    {
        retColSize[i]=2;
    }
    *returnColumnSizes=retColSize;

    return arr;
}
int compare(const void* a,const void* b)
{
    const int* n1=*(int**)a;
    const int* n2=*(int**)b;
    
    int ret=n1[0]-n2[0];
    if(ret==0)
    {
        ret=n1[1]-n2[1];
    }
    return ret;
}

 

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 15:30
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,