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

server/2024/9/23 9:28: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/server/23560.html

相关文章

MATLAB中左边的大括号最后一行为什么会留很大的空白——解决

看了一些帖子说改字体&#xff0c;但是并没有什么用&#xff0c;在此给出亲测有效的方法&#xff1a;改变矩阵的行间距 先说一下问题 上图中留有大块空白 **解决办法&#xff1a;**光标放在矩阵上 格式——矩阵——更改矩阵&#xff0c;在矩阵设置中选中“行高相等”&#xff…

按下按键点亮灯-第二天

1.按下亮&#xff0c;松开不亮 #include "reg52.h"sbit key1 P2^1; sbit ledone P3^7; void main() {//while(1){if(key1 0){ //ledone 0;break;}else if(key1 1){ledone 1;break;}} }

Android Studio的button点击事件

xml添加onClick调用方法 public class MainActivity extends AppCompatActivity {// 创建系统时间的文本控件TextView systemTimeTextView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activit…

【智能优化算法】粒子群优化KNN分类算法【附python实现代码】

写在前面&#xff1a; 首先感谢兄弟们的订阅&#xff0c;让我有创作的动力&#xff0c;在创作过程我会尽最大能力&#xff0c;保证作品的质量&#xff0c;如果有问题&#xff0c;可以私信我&#xff0c;让我们携手共进&#xff0c;共创辉煌。 路虽远&#xff0c;行则将至&#…

C++之const

const是C中的关键字&#xff0c;又叫常量限定符&#xff0c;作用是告知编译器const修饰的变量是不可修改的。 1、const修饰常量 1.1、修饰常量 #include <iostream> using namespace std;int main(int argc, char argv[]) {// 在修饰常量时&#xff0c;int const和con…

怎么给字符串字段加索引?

怎么给字符串字段加索引&#xff1f; 现在&#xff0c;几乎所有的系统都支持邮箱登录&#xff0c;如何在邮箱这样的字段上建立合理的索引&#xff0c;是我们今天要讨论的问题。 假设&#xff0c;你现在维护一个支持邮箱登录的系统&#xff0c;用户表是这么定义的&#xff1a; …

2024-4-29

今日流水账&#xff1a; 上午&#xff1a; 还是在看相关源码&#xff0c;搞懂了 unix socket 和 inet soeket 的区别&#xff0c;并且终于搞懂了 SCM_RIGHTS 一些源码的细节&#xff0c;太不容易了~~~&#xff0c;但还是感觉效率不高&#xff0c;下午的把效率提起来了 下午&am…

Agent AI智能体的未来

Agent AI智能体的未来 随着Agent AI智能体的智能化水平不断提高&#xff0c;它们在未来社会中的角色、发展路径以及可能带来的挑战也引起了广泛关注。快来分享一下你的看法吧~ 提醒&#xff1a;在发布作品前&#xff0c;请把不需要的内容删掉。 方向一&#xff1a;技术进步与…