首页 > 其他分享 >39. 组合总和c

39. 组合总和c

时间:2024-03-15 15:47:43浏览次数:251  
标签:39 target 组合 returnSize int sum candidatesSize array 总和

脑残了,参数传错了,debug了半天。

/**
 * 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 temp[100];

void  dfs(int** array,int* candidates,int candidatesSize,int target,int* returnSize,int index,int sum,int count,int* column){
    if(index>candidatesSize || sum>target) return;
    if(index==candidatesSize&&sum!=target) return;
    if(sum==target){
        column[*returnSize]=count;
        array[*returnSize]=(int*)malloc(sizeof(int)*count);
        for(int i=0;i<count;i++) array[*returnSize][i]=temp[i];
        (*returnSize)++;
        return;
    }
    temp[count]=candidates[index];
    dfs(array,candidates,candidatesSize,target,returnSize,index,sum+candidates[index],count+1,column);
    temp[count]=0;
    dfs(array,candidates,candidatesSize,target,returnSize,index+1,sum,count,column);
}

int** combinationSum(int* candidates, int candidatesSize, int target, int* returnSize, int** returnColumnSizes) {
    printf("%d",candidatesSize);
    *returnSize=0;
    int** array=(int**)malloc(sizeof(int*)*500);
    int* column=(int*)malloc(sizeof(int)*500);
    dfs(array,candidates,candidatesSize,target,returnSize,0,0,0,column);
    *returnColumnSizes=column;
    return array;
}

标签:39,target,组合,returnSize,int,sum,candidatesSize,array,总和
From: https://www.cnblogs.com/llllmz/p/18075561

相关文章

  • 17. 电话号码的字母组合c
    /***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/charc[10][10]={"","","abc\0","def\0","ghi\0","jkl\0","mno\0","pqrs\0","tuv\0&q......
  • 77. 组合c
    /***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/inttemp[100];voiddfs(int**......
  • CF575H Bots 题解 组合数学
    Bots传送门SashaandIraaretwobestfriends.Buttheyaren’tjustfriends,theyaresoftwareengineersandexpertsinartificialintelligence.Theyaredevelopinganalgorithmfortwobotsplayingatwo-playergame.Thegameiscooperativeandturn......
  • LC 17.电话号码的字母组合
    17.电话号码的字母组合给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。示例1:输入:digits=“23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd......
  • 代码随想录训练营第44天 | 动态规划:完全背包理论基础、​​​​​​LeetCode 518.零钱
    目录动态规划:完全背包理论基础文章讲解:代码随想录(programmercarl.com)视频讲解:带你学透完全背包问题!_哔哩哔哩_bilibili思路​​​​​​LeetCode518.零钱兑换II文章讲解:代码随想录(programmercarl.com)视频讲解:518.零钱兑换II_哔哩哔哩_bilibili思路​​​​​​Le......
  • MATLAB用GARCH-EVT-Copula模型VaR预测分析股票投资组合
    全文链接:http://tecdat.cn/?p=30426原文出处:拓端数据部落公众号对VaR计算方法的改进,以更好的度量开放式基金的风险。本文把基金所持股票看成是一个投资组合,引入Copula来描述多只股票间的非线性相关性,构建多元GARCH-EVT-Copula模型来度量开放式基金的风险,并与其他VaR估计方法的预......
  • 代码随想录算法训练营第day46|139.单词拆分 、多重背包
    目录139.单词拆分多重背包 139.单词拆分力扣题目链接(opensnewwindow)给定一个非空字符串s和一个包含非空单词的列表wordDict,判定 s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单......
  • 组合数学相关恒(不)等式
    \(\texttt{First}\):组合数本身相关性质\[C_n^{m}=C_{n}^{n-m}\]\[C_n^m=\dfrac{n}{m}\timesC_{n-1}^{m-1}\]\[C_{n}^m=C_{n-1}^{m}+C_{n-1}^{m-1}\]杨辉三角。\[C_{n}^{m}=\dfrac{n-m+1}{m}\timesC_{n}^{m-1}\]展开即得,可以作为\(n\)确定,\(m\)不定的递推式......
  • Doremy's Drying Plan (Hard Version)
    我们先来看看简单版本的想法,非常具有启发性大致的思路见这篇文章下面是对这篇文章具体操作的阐释我们先将所有区间按照左端点单调递增排序,并统计每一个区间中\(c_i=1\)的个数(这个直接用前缀和就好了,设\(sum[i][j]\)表示前\(i\)个数中\(c_k=j\)的个数),枚举其中一个区间(设为\([l,r......
  • 代码随想录算法训练营第四十六天| 139.单词拆分 多重背包 背包问题总结篇!
    单词拆分 题目链接:139.单词拆分-力扣(LeetCode)思路:竟然真能转化为背包问题。classSolution{public:boolwordBreak(strings,vector<string>&wordDict){unordered_set<string>t(wordDict.begin(),wordDict.end());vector<bool>dp(s.size()+......