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;
    }
};
相关推荐
AA陈超33 分钟前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-18.生成火球术
c++·游戏·ue5·游戏引擎·虚幻
wxin_VXbishe43 分钟前
springboot居家养老管理系统-计算机毕业设计源码55953
java·c++·spring boot·python·spring·django·php
ULTRA??1 小时前
归并排序算法实现,kotlin,c++,python
c++·python·kotlin
deng-c-f1 小时前
C/C++内置库函数(5):值/引用传递、移动构造、以及常用的构造技巧
开发语言·c++
qq_310658511 小时前
mediasoup源码走读(十)——producer
服务器·c++·音视频
Tipriest_1 小时前
C++ Python使用常用库时如何做欧拉角 ⇄ 四元数转换
c++·python·四元数·欧拉角
小尧嵌入式1 小时前
C语言中的面向对象思想
c语言·开发语言·数据结构·c++·单片机·qt
fpcc1 小时前
跟我学C++中级篇——循环展开的分析
c++·优化
埃伊蟹黄面2 小时前
算法 --- hash
数据结构·c++·算法·leetcode
ywwwwwwv2 小时前
力扣139
算法·leetcode·职场和发展