46. 全排列
2021/7/11 23:10:08
本文主要是介绍46. 全排列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 题目描述
- 代码
题目描述
给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
代码
class Solution { public: vector<vector<int> > permute(vector<int> &num) { vector<vector<int>> ret; permuteCore(num,0,ret); return ret; } void permuteCore(vector<int> &num,int index,vector<vector<int>> &ret) { if(index == num.size()) { //这里利用了原数组存放结果排列的临时结果 ret.push_back(num); return; } else { //枚举遍历每个位置各个不同的情况 //这里使用了原数组作为候选值集合,对于当前位置index,index之前的已经 //用过了,因此要从index开始枚举候选元素 for(int i = index;i<num.size();i++) { swap(num[index],num[i]); permuteCore(num,index+1,ret); swap(num[index],num[i]); } } } };
这篇关于46. 全排列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16ShardingSphere 如何完美驾驭分布式事务与 XA 协议?
- 2024-11-16ShardingSphere如何轻松驾驭Seata柔性分布式事务?
- 2024-11-16Maven资料入门指南
- 2024-11-16Maven资料入门教程
- 2024-11-16MyBatis Plus资料:新手入门教程与实践指南
- 2024-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南
- 2024-11-16MyBatis资料详解:新手入门与初级实战指南
- 2024-11-16MyBatisPlus资料:初学者入门指南与实用教程
- 2024-11-16MybatisPlus资料详解:初学者入门指南