LeetCode46 全排列

前言

题目: 46. 全排列
文档: 代码随想录------全排列
编程语言: C++
解题状态: 成功解答!

思路

排列问题综合了之前的回溯问题,但没有新的东西,按部就班回溯就好。

代码

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

        for (int i = 0; i < nums.size(); i++) {
            if (used[i] == true) {
                continue;
            }
            path.push_back(nums[i]);
            used[i] = true;
            backtracking(nums, used);
            used[i] = false;
            path.pop_back();
        }
    }
public:
    vector<vector<int>> permute(vector<int>& nums) {
        res.clear();
        path.clear();
        vector<bool> used(nums.size(), false);
        backtracking(nums, used);
        return res;
    }
};
  • 时间复杂度: O ( n ! ) O(n!) O(n!)
  • 空间复杂度: O ( n ) O(n) O(n)
相关推荐
电星托马斯5 分钟前
C++中顺序容器vector、list和deque的使用方法
linux·c语言·c++·windows·笔记·学习·程序人生
不知名。。。。。。。。12 分钟前
C++__list
开发语言·c++·list
SsummerC13 分钟前
【leetcode100】每日温度
数据结构·python·leetcode
jingshaoyou13 分钟前
Strongswan linked_list_t链表 注释可独立运行测试
数据结构·链表·网络安全·list
仙人掌_lz24 分钟前
机器学习ML极简指南
人工智能·python·算法·机器学习·面试·强化学习
EverestVIP41 分钟前
C++动态库对外接口通过接口方式实现
开发语言·c++
Swift社区1 小时前
Swift LeetCode 246 题解:中心对称数(Strobogrammatic Number)
开发语言·leetcode·swift
巷北夜未央1 小时前
Python每日一题(13)
开发语言·python·算法
独好紫罗兰1 小时前
洛谷题单3-P5720 【深基4.例4】一尺之棰-python-流程图重构
开发语言·python·算法
byte轻骑兵2 小时前
【C++进阶】关联容器:pair类型
开发语言·c++