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
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

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

报告相同问题?

悬赏问题

  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal