力扣-回溯-46 全排列

思路

单层递归逻辑中用used数组记录是否用过就可以了

代码

cpp 复制代码
class Solution {
public:
    vector<int> path;
    vector< vector<int> > result;
    void backtracking(vector<int> nums, vector<bool> used){
        if(path.size() == nums.size()){
            result.push_back(path);
            return;
        }

        for(int i = 0; i < nums.size(); i++){
            if(used[i]) continue;
            path.push_back(nums[i]);
            used[i] = true;
            backtracking(nums, used);
            used[i] = false;
            path.pop_back(); 
        }
        return;
    }

    vector<vector<int>> permute(vector<int>& nums) {
        path.clear();
        result.clear();
        vector<bool> used(nums.size(), false);
        backtracking(nums, used);
        return result;
    }
};
相关推荐
June`32 分钟前
专题四:综合练习( 找出所有子集的异或总和再求和)
c++·算法·深度优先·剪枝
Magnum Lehar1 小时前
3d游戏引擎的Utilities模块实现下
c++·算法·游戏引擎
莹莹学编程—成长记1 小时前
list基础用法
数据结构·list
清幽竹客1 小时前
redis数据结构-09 (ZADD、ZRANGE、ZRANK)
数据结构·数据库·redis
JANYI20181 小时前
C语言易混淆知识点详解
java·c语言·算法
葵花日记1 小时前
数据结构——二叉树
c语言·数据结构
绒绒毛毛雨2 小时前
广告推荐算法入门 day1 --项目选型
算法·推荐算法
越城2 小时前
数据结构中的栈与队列:原理、实现与应用
c语言·数据结构·算法
似水এ᭄往昔2 小时前
【数据结构】——栈和队列OJ
c语言·数据结构·c++
wang__123002 小时前
力扣2094题解
算法·leetcode·职场和发展