首页 > 其他分享 >216. 组合总和 IIIc

216. 组合总和 IIIc

时间:2024-03-07 20:55:35浏览次数:13  
标签:216 count nowsum int IIIc array 总和

/**
 * 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[10];
void dfs(int** array,int k,int n,int* returnSize,int count,int index,int nowsum){
    if(count>k||nowsum>n) return;
    if(count==k && nowsum==n){
        for(int i=0;i<k;i++) array[*returnSize][i]=temp[i];
        (*returnSize)++;
        return;
    }
    if(count==k) return;
    for(int i=index;i<=9;i++){
        temp[count]=i;
        dfs(array,k,n,returnSize,count+1,i+1,nowsum+i);
        temp[count]=0;
    }
}

int** combinationSum3(int k, int n, int* returnSize, int** returnColumnSizes) {
    *returnSize=0;
    int** array=(int**)malloc(sizeof(int*)*5000);
    for(int i=0;i<5000;i++) array[i]=(int*)malloc(sizeof(int)*k);
    for(int i=0;i<10;i++) temp[i]=0;
    dfs(array,k,n,returnSize,0,1,0);
    int* column=(int*)malloc(sizeof(int)*(*returnSize));
    for(int i=0;i<(*returnSize);i++) column[i]=k;
    *returnColumnSizes=column;
    return array;
}

结果:

标签:216,count,nowsum,int,IIIc,array,总和
From: https://www.cnblogs.com/llllmz/p/18059735

相关文章

  • AT_abc216_g [ABC216G] 01Sequence 题解
    分析一道差分约束题。我们令\(\mathit{sum}_{i}\)表示\(1\)到\(i\)中,\(1\)的数量,根据题意可得:\(\mathit{sum}_{l_i-1}+x_i\le\mathit{sum}_{r_i}\)\(\mathit{sum}_{l+1}+(-1)\le\mathit{sum}_{l}\)\(\mathit{sum}_{l}+0\le\mathit{sum}_{l+1}\)因为我们要尽......
  • 112. 路径总和c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/booljudge(structTreeNode*root,intnow,intsum){now+=root->val;if(!root->left&&......
  • 复习回顾-动态规划算法part6-377. 组合总和 Ⅳ
    注意点&感悟:跟卡尔的57题不一样,57爬楼梯,物品是m,背包是total总台阶数量,每次爬楼梯的m个foriinrange(1,m+1)选择是有限的377组合是,给的nums是物品,背包是target目标,每次这些物品都能选,选择是全部遍历一遍。foriinrange(len(nums)) 全部遍历题目链接:377.组合总和Ⅳ......
  • (26/60)组合总和、组合总和Ⅱ、分割回文串
    组合总和leetcode:39.组合总和回溯法思路在组合的基础上,只不过同一个数字可以重复选取,递归时传入i即可(组合是传入i+1)。复杂度分析时间复杂度:在最坏情况下,回溯算法会遍历所有可能的组合,因此时间复杂度取决于解的个数。假设候选数组的长度为n,目标值为target,最坏情况下解的......
  • (25/60)组合总和Ⅲ、电话号码的字母组合
    组合总和Ⅲleetcode:216.组合总和III回溯法思路组合的基础上,在找组合的过程中,把和为N的记录下来。复杂度分析时间复杂度:O(C(K,9))。空间复杂度:空间复杂度主要来自递归调用时维护的栈空间和存储结果的二维数组,分别为O(k)和O(C(K,9)*K)。注意点略代码实现classSolut......
  • 代码随想录算法训练营第二十六天| 39. 组合总和 40.组合总和II 131.分割回文串
    组合总和题目链接:39.组合总和-力扣(LeetCode)思路:依然一是套用回溯模板,但是我们这里用回溯的是i而不是i+1,因为元素可以重复使用,注意for循环里if(sum(path)<=target)的等号不能少。classSolution{public:vector<int>path;vector<vector<int>>result;intsu......
  • 代码随想录算法训练营第二十五天| 216.组合总和III 17.电话号码的字母组合
    组合总和III题目链接:216.组合总和III-力扣(LeetCode)思路:仿照昨天的递归模板写的,同样是for循环横向遍历,递归纵向遍历。注意当k>n时要直接跳出,否则会判断栈溢出。额外发现一个问题就是在累加sum时,用for(autoi:path)sum+=path[i];会出现奇怪数字,原因是auto遍历用法错误,正确写......
  • 代码随想录算法训练营第二十五天 | 17.电话号码的字母组合 , 216.组合总和III
    216.组合总和III 已解答中等 相关标签相关企业 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回......
  • 力扣 dfs之 437. 路径总和 III
    给定一个二叉树的根节点root ,和一个整数targetSum,求该二叉树里节点值之和等于targetSum的路径的数目。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 示例1:输入:root=[10,5,-3,3,2,null,11,3,-2,null,1],target......
  • 【CVE-2024-21626】容器逃逸漏洞修复
    哈喽大家好,我是咸鱼。好久不见,最近有一个很火的CVE——runc容器逃逸漏洞。年前的时候我们已经在测试环境进行了相关操作打算年后线上进行修复。因为今天咸鱼才开工,所以文章也就拖到了现在......