C语言 | Leetcode C语言题解之第46题全排列

ops/2025/2/11 3:01:15/

题目:

题解

void swap(int * nums,int indexA,int indexB)
{int temp    = nums[indexA];nums[indexA]= nums[indexB];nums[indexB]= temp;
}void prem(int* nums, int numsSize, int* returnSize, int** returnColumnSizes,int** returnNums,int offset)
{if(offset == numsSize){//遍历到末尾了//申请returnNumsreturnNums[*returnSize] = (int *)malloc(sizeof(int ) * numsSize);//拷贝内容到returnNumsmemcpy(returnNums[*returnSize],nums,sizeof(int) * numsSize );//记录当前拷贝内容的长度(*returnColumnSizes)[*returnSize] = numsSize;*returnSize = *returnSize + 1;}else{//回溯算法的核心int i;for(i = offset; i < numsSize; i++){swap(nums,i,offset);//i 和 offset 交换prem(nums,numsSize,returnSize,returnColumnSizes,returnNums,offset+1);swap(nums,i,offset);//i 和 offset 交换}}
}int** permute(int* nums, int numsSize, int* returnSize, int** returnColumnSizes)
{//不重复的数字的全排序//组合次数为 n!= n *( n - 1) *( n - 2) ...... 2 * 1//这样的方法适合回溯的方法//取值范围1 <= nums.length <= 6  = 6 * 5 * 4 * 3 *2 * 1 = 720中可能int **returnNums = (int **)malloc(sizeof(int *) * 721);*returnColumnSizes= (int *)malloc(sizeof(int ) * 721);*returnSize = 0;prem(nums,numsSize,returnSize,returnColumnSizes,returnNums,0);return returnNums;}

http://www.ppmy.cn/ops/23616.html

相关文章

C# [Flags]属性

在C#中&#xff0c;当你看到[Flags]这个属性被用于枚举&#xff08;enum&#xff09;&#xff0c;它意味着这个枚举设计用来支持位运算&#xff0c;以便可以组合多个枚举值。这通常用于表示可以独立打开或关闭的多个选项或标志。 例如&#xff0c;考虑一个枚举&#xff0c;它代…

Dockerfile 构建上下文 build -f 选项 加快构建速度

理解构建上下文&#xff08;Build Context&#xff09; 当运行 docker build 命令时&#xff0c;当前工作目录被称为构建上下文&#xff0c;docker本身会将工作目录里面所有的文件都上传给docker daemon&#xff0c;在这个基础之上再去构建容器镜像。&#xff08;如果你在根目…

c++在visual studio上的默认配置

右键 新建项 右键源文件 属性

photoshop如何使用PS中的吸管工具吸取软件外部的颜色?

第一步&#xff0c;打开PS&#xff0c;随意新建一个画布&#xff0c;或打开一个图片。 第二步&#xff0c;将PS窗口缩小&#xff0c;和外部窗口叠加放置&#xff0c;以露出后面的其它页面。 第三步&#xff0c;选中吸管工具&#xff0c;在PS窗口内单击一点吸取颜色&#xff0c;…

REST API规范

目录 一、REST相关规范1.1 Http Method1.2 REST接口格式1.3 Http Status1.4 版本控制 二、SpringMVC相关规范2.1 参数校验2.2 响应结果2.3 接口全局异常处理2.4 参数校验提示信息支持国际化2.5 响应码规范 REST JSON已成为Http接口的事实标准&#xff0c;本文给出我平时推荐的R…

R语言 |一些常用的数据整理的技巧(二)

1. 替换 data$V5[data$V5Retroposon]<-"SVA" #把某列中某值替换成指定值2. 分组计数 #方法一&#xff1a;R中自带的aggregate()函数 group_mean <- aggregate(weight ~ feed, data df, mean) #这个似乎实现的需求比较简单&#xff0c;只能按照1列进行求和或…

(三)登录和注册(handle_auto.go)

登录和注册(handle_auto.go) 文章目录 登录和注册(handle_auto.go)一、所需要的结构体信息二、注册三、登录四、退出 一、所需要的结构体信息 type UserAuth struct{}type LoginReq struct {Username string json:"username" binding:"required"Password …

Eureka服务注册与发现

Eureka服务注册与发现 概念原理Eureka的基本架构Eureka包含两个组件&#xff1a;Eureka Server和Eureka Client 三大角色目前工程情况 构建步骤step1&#xff1a;EurekaServer服务注册中心Module的建立step2&#xff1a;将已有的微服务注册进eureka服务中心actuator与注册微服务…