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;
    }
};
相关推荐
charlie1145141914 分钟前
现代C++指南:Lambda,让我们用另一种方式持有函数
开发语言·c++
想吃火锅10055 分钟前
【leetcode】121.买卖股票的最佳时机js/c++
算法·leetcode·职场和发展
森G26 分钟前
77、线程池原理和实现------服务器源码解析----云视频服务项目
服务器·c++·qt
.千余1 小时前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
代码改善世界1 小时前
【C++进阶】C++11:列表初始化、右值引用与移动语义、完美转发全解析
java·开发语言·c++
牛油果子哥q1 小时前
并查集(DSU)超精讲,路径压缩、按秩合并、万能模板、连通性判定、最小生成树与刷题实战全解
数据结构·c++·最小生成树·并查集
小冷爱读书1 小时前
allocator
开发语言·c++
森G1 小时前
71、打包发布---------打包发布
c++·qt
小冷爱读书1 小时前
C++ 单例四种实现完整演进逻辑
开发语言·c++·c++学习
Mortalbreeze2 小时前
C++11 可调用对象体系详解:从 reference_wrapper 到 bind 与 function
开发语言·c++