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;
    }
};
相关推荐
源代码•宸4 分钟前
Leetcode—2749. 得到整数零需要执行的最少操作数【中等】(__builtin_popcountl)
c++·经验分享·算法·leetcode·位运算
芒果敲代码14 分钟前
单一职责原则(SRP)
c++·单一职责原则
ComputerInBook44 分钟前
C++编程语言:标准库:第37章——正则表达式(Bjarne Stroustrup)
开发语言·c++·正则表达式
青草地溪水旁1 小时前
C/C++中的可变参数 (Variadic Arguments)函数机制
c语言·c++·可变参数
汉克老师1 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(1、求和)
c++·蓝桥杯·蓝桥杯c++·c++蓝桥杯
XXYBMOOO1 小时前
Qt UDP 通信类详解与实现
开发语言·网络·c++·qt·网络协议·ui·udp
君鼎2 小时前
More Effective C++ 条款29:引用计数
c++
圣保罗的大教堂2 小时前
leetcode 2749. 得到整数零需要执行的最少操作数 中等
leetcode
小欣加油2 小时前
leetcode 6 Z字形变化
c++·算法·leetcode·职场和发展
曙曙学编程2 小时前
stm32——寄存器操作,蜂鸣器原理
c语言·c++·stm32·单片机·嵌入式硬件