首页 > 其他分享 >47. 全排列 IIc

47. 全排列 IIc

时间:2024-03-09 21:35:26浏览次数:30  
标签:count numsSize 排列 returnSize int 47 IIc array

我宣布我已经参透了套路,一次AC

/**
 * 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];
int visit[10]={0};

void dfs(int* nums,int numsSize,int** array,int* returnSize,int* column,int count){
    if(count>numsSize) return ;
    if(count==numsSize){
        column[*returnSize]=count;
        array[*returnSize]=(int*)malloc(sizeof(int)*count);
        for(int i=0;i<count;i++) array[*returnSize][i]=temp[i];
        (*returnSize)++;
        return;
    }
    int t[21]={0};
    for(int i=0;i<numsSize;i++){
        if(visit[i]==0 && t[10+nums[i]]==0){
            visit[i]=1;
            t[10+nums[i]]=1;
            temp[count]=nums[i];
            dfs(nums,numsSize,array,returnSize,column,count+1);
            visit[i]=0;
        }
    }
}

int** permuteUnique(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {
    *returnSize=0;
    int* column=(int*)malloc(sizeof(int)*10000);
    int** array=(int**)malloc(sizeof(int*)*10000);
    dfs(nums,numsSize,array,returnSize,column,0);
    *returnColumnSizes=column;
    return array;
}

结果:

标签:count,numsSize,排列,returnSize,int,47,IIc,array
From: https://www.cnblogs.com/llllmz/p/18063359

相关文章

  • 46. 全排列c
    出息了!一次AC/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/inttemp[10];intvi......
  • 【力扣】排列问题(回溯法)
    问题描述排列问题的难点在于排列要求有序,并且在写的时候发现,如何在选择后面的元素后回过头去选择前面的元素,这是很难处理的,在前面的组合问题中,我们都是用startindex来处理,而在这里就行不通了。容易想到的一种解决方法就是另外设置一个与nums长度相同的used数组来记录元素的遍历......
  • P4774 屠龙勇士 题解
    传送门显然每一只龙对应了唯一的一把剑。用multiset可以求出每一把剑。于是题目就变成了:\[\begin{cases}b_1x\equiva_1\pmod{m_1}\\b_2x\equiva_2\pmod{m_2}\\\dots\\b_nx\equiva_n\pmod{m_n}\end{cases}\]如果\(b_i=1\),直接EXCRT即可。现在\(b_i>1\),还是以EXCRT......
  • P4765 CERC2014 The Imp
    设我们打算买的\(K+1\)个物品为\(p_1,p_2,\cdots,p_{K+1}\)。则收益为\(min(v_{p_1}-c_{p_1},v_{p_2}-c_{p_1}-c_{p_2},\cdots,v_{p_{K+1}}-\sum_{i=1}^{K+1}c_{p_i})\)。从邻项交换的角度,考虑我们按哪种顺序购买这\(K+1\)个物品收益最大。任取相邻两项\((v_{p_x},c_{p_......
  • 40. 组合总和 IIc
    很好的题目,使我的大脑旋转。/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/intte......
  • STM32硬件IIC使用
    概述虽然STM32的硬件IIC据说有设计缺陷,但是经过我的实践,至少STM32F103的硬件IIC是没问题的。这里给出STM32的硬件IIC的使用以及编程思路。1.STM32硬件IIC引脚在这里给出STM32F103的硬件IIC引脚,方便查阅使用2.STM32硬件IIC使用流程STM32的硬件IIC我认为是非常具有借鉴意义的,......
  • [HDU6647] Bracket Sequences on Tree 题解
    [HDU6647]BracketSequencesonTree题解一道纯靠自己推出来的换根\(dp+\)树哈希,写篇题解庆祝一下~~题意:给定一棵无根树,你可以任意选择根节点和遍历顺序,每次遍历时进入一个节点就标记一个(,离开一个节点就标记一个),问所有存在的括号序列有多少种,对998244353取模。先考虑根固......
  • 216. 组合总和 IIIc
    /***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/inttemp[10];voiddfs(int**......
  • CF147B 题解
    Solution一道十分典型的dp题。有三个关键点分别是定义状态、优化和答案的统计。首先定义状态,定义\(f_{i,j,p}\)表示\(i\toj\)号节点,共走了不超过\(p\)条边,且是\(i\toj\)的最长路径。不超过\(p\)条边是为了方便转移,而最长路径如果都为负环,说明需要走更多的边,实......
  • solution-at4703
    题解AT4703【RedorBlue】原题来介绍一下三元运算符:A?B:C如果表达式A为真,则执行B语句,否则执行C语句。其作用就相当于:if(A){ B;}else{ C;}例如1+1>2?puts("IAKIOI"):puts("qwq");将会输出qwq。那么此题代码就可以变得极简。代码#include<iostr......