C++ | Leetcode C++题解之第46题全排列

题目:

题解:

cpp 复制代码
class Solution {
public:
    void backtrack(vector<vector<int>>& res, vector<int>& output, int first, int len){
        // 所有数都填完了
        if (first == len) {
            res.emplace_back(output);
            return;
        }
        for (int i = first; i < len; ++i) {
            // 动态维护数组
            swap(output[i], output[first]);
            // 继续递归填下一个数
            backtrack(res, output, first + 1, len);
            // 撤销操作
            swap(output[i], output[first]);
        }
    }
    vector<vector<int>> permute(vector<int>& nums) {
        vector<vector<int> > res;
        backtrack(res, nums, 0, (int)nums.size());
        return res;
    }
};
相关推荐
拾饵94211 分钟前
面试回答整理(Q1–Q3)
leetcode
虚无的纽扣25 分钟前
【力扣刷题】第四天:三数之和、四数之和
算法·leetcode·职场和发展
StarRocks_labs34 分钟前
StarRocks 接入 Paimon C++:让湖上查询进入原生执行链路
starrocks·c++·sql·jni·paimon·auto·湖上查询
垆边人似月.41 分钟前
华为题:字符串中最长连续数字串
开发语言·c++·算法
_不会dp不改名_43 分钟前
leetcode_3273 数位平方和的最大值
算法·leetcode·职场和发展
罗湖老棍子1 小时前
座位安排(洛谷-P2071)
c++·算法·图论·匈牙利算法·二分图匹配
IOT那些事儿1 小时前
C++17和20版本差异
c++·mingw·msvc
垆边人似月.1 小时前
华为题:任务调度
数据结构·c++·算法
局部有解1 小时前
Leetcode - 42 接雨水(一维)
数据结构·c++·算法·leetcode
fpcc2 小时前
c++20新功能—std::osyncstream
c++·c++20