当前位置: 首页 > news >正文

leetcode做题笔记78子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

思路一:回溯

void backtracking(int* nums, int numsSize, int** res, int* returnSize, int** returnColumnSizes, int* path, int pathSize, int startIndex) {res[*returnSize] = (int*)malloc(sizeof(int) * pathSize);memcpy(res[*returnSize], path, sizeof(int) * pathSize);(*returnColumnSizes)[*returnSize] = pathSize;(*returnSize)++;for (int i = startIndex; i < numsSize; i++) {path[pathSize] = nums[i];backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, pathSize + 1, i + 1);}
}int** subsets(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {*returnSize = 0;*returnColumnSizes = (int*)malloc(sizeof(int) * 10001);int** res = (int**)malloc(sizeof(int*) * 10001);int* path = (int*)malloc(sizeof(int) * numsSize);backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, 0, 0);return res;
}

分析:

本题与上一题相似,利用回溯算法将数组内子集全部列出即可,path[pathSize] = nums[i];

backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, pathSize + 1, i + 1);将子集全部列出,最后返回res

总结:

本题考察回溯的应用,将子集按顺序全部列出即可解决

http://www.lryc.cn/news/123799.html

相关文章:

  • Skywalking-9.6.0系列之本地源码编译并启动
  • proteus结合keil-arm编译器构建STM32单片机项目进行仿真
  • 第五十三天
  • gorm基本操作
  • 华为OD机试 - 排队游戏(Java JS Python)
  • 滚动条样式更改
  • 掌握Python的X篇_33_MATLAB的替代组合NumPy+SciPy+Matplotlib
  • Python解决-力扣002-两数相加
  • nginx基于源码安装的方式对静态页面、虚拟主机(IP、端口、域名)和日志文件进行配置
  • [FPAG开发]使用Vivado创建第一个程序
  • 使用 Python 在 NLP 中进行文本预处理
  • [足式机器人]Part3机构运动微分几何学分析与综合Ch03-1 空间约束曲线与约束曲面微分几何学——【读书笔记】
  • pytest框架快速进阶篇-pytest前置和pytest后置,skipif跳过用例
  • Python 基础语法 | 常量表达式,变量,注释,输入输出
  • SQL | 分组数据
  • 软件测试技术之如何编写测试用例(6)
  • 论文阅读——Adversarial Eigen Attack on Black-Box Models
  • 自然语言处理从入门到应用——LangChain:记忆(Memory)-[自定义对话记忆与自定义记忆类]
  • 【C/C++】STL queue 非线程安全接口,危险!
  • 执行Lua脚本后一直查询不到Redis中的数据(附带问题详细排查过程,一波三折)
  • [高光谱]PyTorch使用CNN对高光谱图像进行分类
  • jmeter获取mysql数据
  • Dedecms V110最新版RCE---Tricks
  • CTFshow 限时活动 红包挑战7、红包挑战8
  • Redis使用Lua脚本和Redisson来保证库存扣减中的原子性和一致性
  • 【从零开始学Kaggle竞赛】泰坦尼克之灾
  • 输出无重复的3位数和计算无人机飞行坐标
  • muduo 29 异步日志
  • Qt 对象序列化/反序列化
  • 从零学算法(非官方题库)