代码随想录 Leetcode46. 全排列

题目:


代码(首刷自解 2024年2月6日):

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

        for (int i = 0; i < nums.size(); ++i) {
            if (used[i] == true) continue;
            path.push_back(nums[i]);
            used[i] = true;
            backtracking(nums, depth + 1, used);
            used[i] = false;
            path.pop_back();
        }
        return;
    }
    vector<vector<int>> permute(vector<int>& nums) {
        res.clear();
        path.clear();
        vector<bool> used(nums.size(), 0);//记录同一树枝上已用过的节点
        backtracking(nums, 0 ,used);
        return res;
    }
};
相关推荐
睿智的海鸥几秒前
Markdown 语法大全详解
开发语言·前端·javascript·css·html
睡觉就不困鸭3 分钟前
第14天 四数之和
数据结构·算法
Highcharts.js11 分钟前
用Highcharts如何动态向一个序列添加点
前端·javascript·react.js·highcharts
云泽80817 分钟前
二叉树高阶笔试算法题精讲(一):序列化、层序遍历、LCA 与 BST 转换
数据结构·c++·算法
HookJames17 分钟前
设计Section 09 · Cost & Lead Time Factors 的完整 Block Editor 操作步骤
前端
再卷也是菜25 分钟前
算法提高篇(3)线段树(下)
算法
嘻嘻哈哈樱桃31 分钟前
牛客经典101题题解集--二叉树
java·数据结构·python·算法·leetcode·职场和发展
6Hzlia33 分钟前
【Hot 100 刷题计划】 LeetCode 98. 验证二叉搜索树 | C++ 指针边界法
c++·算法·leetcode
AI科技星42 分钟前
算子数学|独立完整学科章节(百条原创公式· ROOT传世定稿)
大数据·算法·机器学习·数学建模·数据挖掘·量子计算
玖玖passion44 分钟前
React 常用 Hooks 函数及使用方法完全指南(useState / useEffect / useRef / useContext / useCallback / useMemo / useReducer)
前端·javascript