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);
        }
    }
};
相关推荐
ValhallaCoder9 分钟前
hot100-二分查找
数据结构·python·算法·二分查找
0 0 011 分钟前
【C++】矩阵翻转/n*n的矩阵旋转
c++·线性代数·算法·矩阵
m0_5312371716 分钟前
C语言-指针,结构体
c语言·数据结构·算法
癫狂的兔子17 分钟前
【Python】【机器学习】十大算法简介与应用
python·算法·机器学习
丰海洋22 分钟前
leetcode-hot100-1.两数之和
数据结构·算法·leetcode
苦藤新鸡22 分钟前
58 单词搜索
数据结构·算法
_F_y27 分钟前
背包问题动态规划
算法·动态规划
Frostnova丶28 分钟前
LeetCode 401. 二进制手表
算法·leetcode
Wect31 分钟前
LeetCode 104. 二叉树的最大深度:解题思路+代码解析
前端·算法·typescript
Wect35 分钟前
LeetCode 100. 相同的树:两种解法(递归+迭代)详解
前端·算法·typescript