LeetCode46:全排列

题目描述

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


解题思想

使用used记录元素是否使用过,排列是有序的,要注意与组合的区别。

代码

cpp 复制代码
class Solution {
public:
    vector<vector<int>> res;
    vector<int> path;

    void backTracking(const vector<int>& nums, vector<bool> used) {
        if (path.size() == nums.size()) {
            res.push_back(path);
            return;
        }
            
        for (int i = 0; i < nums.size(); i++) {
            
            if(used[i]==true) continue;

            used[i] = true;
            path.push_back(nums[i]);
            backTracking(nums, used);
            used[i] = false;
            path.pop_back();
        }
    }


    vector<vector<int>> permute(vector<int>& nums) {
        vector<bool> used(nums.size(),false);
        backTracking(nums, used);
        return res;
    }
};
相关推荐
先做个垃圾出来………1 小时前
差分数组(Difference Array)
java·数据结构·算法
The Chosen One9851 小时前
C++ : AVL树-详解
开发语言·c++
zzyzxb1 小时前
std::enable_shared_from_this
c++
SNAKEpc121381 小时前
QML和Qt Quick
c++·qt
hansang_IR1 小时前
【题解】洛谷 P4286 [SHOI2008] 安全的航线 [递归分治]
c++·数学·算法·dfs·题解·向量·点积
乐迪信息1 小时前
乐迪信息:AI摄像机在智慧煤矿人员安全与行为识别中的技术应用
大数据·人工智能·算法·安全·视觉检测
GanGuaGua1 小时前
Linux系统:线程的互斥和安全
linux·运维·服务器·c语言·c++·安全
怀旧,1 小时前
【C++】18. 红⿊树实现
开发语言·c++
lsnm1 小时前
【LINUX网络】IP——网络层
linux·服务器·网络·c++·网络协议·tcp/ip
多恩Stone2 小时前
【3DV 进阶-2】Hunyuan3D2.1 训练代码详细理解下-数据读取流程
人工智能·python·算法·3d·aigc