leetcode日记(36)全排列

想思路想了很久......思路对了应该会很好做。

我的思路是这样的:只变化前n个数字,不断增加n,由2到nums.size(),使用递归直到得到所有结果

代码如下:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> permute(vector<int>& nums) {
        vector<vector<int>> v;
        v.push_back(nums);
        hs(v,1,nums);
        return v;
    }
    void hs(vector<vector<int>> &v,int n,vector<int> nums){
        if(n==nums.size()) return;
        int m=nums[n];
        nums.erase(nums.begin()+n);
        for(int i=n;i>=0;i--){
            nums.insert(nums.begin()+i,m);
            if(i!=n) v.push_back(nums);
            hs(v,n+1,nums);
            nums.erase(nums.begin()+i);
        }
    }
};
相关推荐
wen__xvn4 分钟前
代码随想录算法训练营DAY3第一章 数组part02
java·数据结构·算法
一起养小猫15 分钟前
LeetCode100天Day8-缺失数字与只出现一次的数字
java·数据结构·算法·leetcode
梭七y19 分钟前
【力扣hot100题】(115)缺失的第一个正数
数据结构·算法·leetcode
嵌入式进阶行者25 分钟前
【算法】回溯算法的基本原理与实例:华为OD机考双机位A卷 - 乘坐保密电梯
c++·算法
McGrady-17533 分钟前
portal 在scene graph 中怎么生成?
算法·机器人
川西胖墩墩42 分钟前
智能体在科研辅助中的自动化实验设计
人工智能·算法
ouliten1 小时前
石子合并模型
c++·算法
weixin_461769401 小时前
5. 最长回文子串
数据结构·c++·算法·动态规划
补三补四1 小时前
XGBoost(eXtreme Gradient Boosting)算法的核心原理与底层实现技术
算法·集成学习·boosting
多打代码1 小时前
2026.1.2 删除二叉搜索树中的节点
开发语言·python·算法