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);
        }
    }
};
相关推荐
ab1515178 分钟前
3.17二刷基础112 118 完成进阶52
数据结构·算法
美式请加冰14 分钟前
链表的介绍和使用
数据结构·链表
旖-旎27 分钟前
二分查找(1)
c++·算法·二分查找·力扣·双指针
困死,根本不会32 分钟前
【C 语言】指针学习笔记:从底层原理到实战应用
c语言·开发语言·笔记·学习·算法
小范自学编程39 分钟前
算法训练营 Day38 - 动态规划part07
算法·动态规划
星空露珠1 小时前
迷你世界UGC3.0脚本Wiki全局函数
开发语言·数据库·算法·游戏·lua
小王不爱笑1321 小时前
排序算法 Java
数据结构·算法·排序算法
无敌憨憨大王2 小时前
二叉树的最短路径长度(BFS+DFS)
算法·深度优先·宽度优先
tankeven2 小时前
HJ132 小红走网格
c++·算法
小璐资源网2 小时前
算法黑箱的可解释性危机
算法