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

devtools/2024/9/25 17:10:12/

题目:

题解

int* vis;void backtrack(int* nums, int numSize, int** ans, int* ansSize, int idx, int* perm) {if (idx == numSize) {int* tmp = malloc(sizeof(int) * numSize);memcpy(tmp, perm, sizeof(int) * numSize);ans[(*ansSize)++] = tmp;return;}for (int i = 0; i < numSize; ++i) {if (vis[i] || (i > 0 && nums[i] == nums[i - 1] && !vis[i - 1])) {continue;}perm[idx] = nums[i];vis[i] = 1;backtrack(nums, numSize, ans, ansSize, idx + 1, perm);vis[i] = 0;}
}int cmp(void* a, void* b) {return *(int*)a - *(int*)b;
}int** permuteUnique(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {int** ans = malloc(sizeof(int*) * 2001);int* perm = malloc(sizeof(int) * 2001);vis = malloc(sizeof(int) * numsSize);memset(vis, 0, sizeof(int) * numsSize);qsort(nums, numsSize, sizeof(int), cmp);*returnSize = 0;backtrack(nums, numsSize, ans, returnSize, 0, perm);*returnColumnSizes = malloc(sizeof(int) * (*returnSize));for (int i = 0; i < *returnSize; i++) {(*returnColumnSizes)[i] = numsSize;}return ans;
}

http://www.ppmy.cn/devtools/15345.html

相关文章

【Linux】进程间通信

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、进程为什么要通信&#xff1f; 二、进程间通信目的 三、进程如何通信&#xff1f; 如何让操作系统创建这份资源呢&#xff1f; 三、进程间通信的常见方式…

Windows应急响应流程与思路

什么是应急响应 网络安全应急响应&#xff08;Network Security Incident Response&#xff0c;又称CSIRT&#xff09;是指团队或组织为了在网络安全事件发生时能够及时准确地做出反应和应对而建立的一套制度和流程。其目的是降低网络安全事件所造成的损失并迅速恢复受影响的系…

高并发场景中DB和Cache的一致性新的方案感想

拜读了: 美团2面&#xff1a;如何保障 MySQL 和 Redis 数据一致性&#xff1f;这样答&#xff0c;虐爆面试官这篇文章后的感想 高并发场景中数据库和缓存的一致性和可用性的感想 1&#xff0c;先更新缓存&#xff0c;再更新数据库1.1&#xff0c;前提1.2&#xff0c;理由1.2.1&…

分布式-知识体系

分布式系统 本质就是一堆机器的协同&#xff0c;要做的就是用各种手段来让机器的运行达到预期 分布式业务场景 分布式四纵四横说 基于 MSA&#xff08;微服务架构&#xff09;的分布式知识体系

c语言基础总结

1. c语言概述 c语言是计算机编程语言的一种&#xff0c;编程语言用于人和机器交流。 1.1 c语言特点 简洁 ​ c语言的语法简单&#xff0c;语句清晰明了&#xff0c;使得程序易于阅读和理解 高效 ​ c语言的执行效率高&#xff0c;可以用于开发需要高性能的应用程序 可移…

ETLCloud平台组件模版的使用技巧

ETL工具介绍 在ETLCloud平台中配备了各种不同的组件、模板、规则&#xff0c;用户可运用不同类型的组件来实现想要的业务流程。接下来直接进入平台组件模板的使用技巧说明吧。 使用技巧 1.组件复制 平时在使用的时候&#xff0c;如果遇到要用到一个组件&#xff0c;需要再来…

华为OD机试真题-亲子游戏-2024年OD统一考试(C卷D卷 )

题目描述: 宝宝和妈妈参加亲子游戏,在一个二维矩阵(N*N)的格子地图上,宝宝和妈妈抽签决定各自的位置,地图上每个格子有不同的糖果数量,部分格子有障碍物。 游戏规则是妈妈必须在最短的时间(每个单位时间只能走一步)到达宝宝的位置,路上的所有糖果都可以拿走,不能走障…

Axure引用ECharts图表 解决火狐浏览器出错

Axure原型添加Echarts图表&#xff0c;没耐心看文章的可以直接下载示例 Axure中使用ECharts图表示例 1. 打开Axure新建页面 2. 页面添加元件 元件类型随意&#xff0c;矩形、动态面板、热区、图片 甚至段落都可以3. 命名元件 随意命名&#xff0c;单个页面用到多个图表时名…