全排列问题,找没有的塞进去进行

算法

全排列
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]
示例 3:

输入:nums = [1]
输出:[[1]]

提示:

1 <= nums.length <= 6
-10 <= nums[i] <= 10
nums 中的所有整数 互不相同
相关标签

C++

答案

vector<vector> res;
void dfs(vector current,vector nums){
if(current.size()==nums.size()){
res.push_back(current);
return;
}
for(int i=0;i<nums.size();i++){
if(find(current.begin(),current.end(),nums[i]) != current.end()){
continue;
}
current.push_back(nums[i]);
dfs(current,nums);
current.pop_back();
}
}
vector<vector> permute(vector& nums) {
// 123 132 213
dfs({},nums);
return res;
}

关键

只要找到没有的数字 塞到vector里面就完成了

posted @   卧龙丹心  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示