美文网首页
2020-05-03 第二十三天

2020-05-03 第二十三天

作者: 三土垚6 | 来源:发表于2020-05-04 12:22 被阅读0次

    2020-5-3 10:00签到
    今天还是三道easy,一道medium;

    22. 括号生成

    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

    虽然 题解是正确的,但递归超出栈空间大小了,即,小n可以解决,大n无法解决,这个该怎么办。

    void dfs(int left,int right,int n,int index,char *a,char **ans,char *returnSize)
    {
        if(left<n)
        {
            a[index]='(';
            dfs(left+1,right,n,index+1,a,ans,returnSize);
        }
        if(right<n&&right<left)
        {
            a[index]=')';
            dfs(left,right+1,n,index+1,a,ans,returnSize);
        }
        if(left==n&&right==n)
        {
            a[index]='\0';
            ans[*returnSize]=(char *)malloc(sizeof(char)*(2*n+1));
            strcpy(ans[*returnSize],a);
            (*returnSize)++;
            return ;
        }    
    }
    char ** generateParenthesis(int n, int* returnSize){
        char **ans=(char **)malloc(sizeof(char *)*1500);
        *returnSize=0;
        char *a=(char *)malloc(sizeof(char)*(2*n+1));
        dfs(0,0,n,0,a,ans,returnSize);
    
        return ans;
    }
    

    相关文章

      网友评论

          本文标题:2020-05-03 第二十三天

          本文链接:https://www.haomeiwen.com/subject/wgtdghtx.html