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;
    }
};
相关推荐
白榆maple18 分钟前
(蓝桥杯C/C++)——基础算法(下)
算法
JSU_曾是此间年少22 分钟前
数据结构——线性表与链表
数据结构·c++·算法
sjsjs1129 分钟前
【数据结构-合法括号字符串】【hard】【拼多多面试题】力扣32. 最长有效括号
数据结构·leetcode
此生只爱蛋1 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
blammmp1 小时前
Java:数据结构-枚举
java·开发语言·数据结构
何曾参静谧2 小时前
「C/C++」C/C++ 指针篇 之 指针运算
c语言·开发语言·c++
昂子的博客2 小时前
基础数据结构——队列(链表实现)
数据结构
咕咕吖2 小时前
对称二叉树(力扣101)
算法·leetcode·职场和发展
九圣残炎2 小时前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu2 小时前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法