LeetCode46. Permutations

文章目录

一、题目

Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order.

Example 1:

Input: nums = [1,2,3]

Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

Example 2:

Input: nums = [0,1]

Output: [[0,1],[1,0]]

Example 3:

Input: nums = [1]

Output: [[1]]

Constraints:

1 <= nums.length <= 6

-10 <= nums[i] <= 10

All the integers of nums are unique.

二、题解

cpp 复制代码
class Solution {
public:
    vector<vector<int>> res;
    vector<int> path;
    void backtracking(vector<int>& nums,vector<int>& used){
        if(path.size() == nums.size()){
            res.push_back(path);
            return;
        }
        for(int i = 0;i < nums.size();i++){
            if(used[i] == 1) continue;
            used[i] = 1;
            path.push_back(nums[i]);
            backtracking(nums,used);
            path.pop_back();
            used[i] = 0;
        }
    }
    vector<vector<int>> permute(vector<int>& nums) {
        int n = nums.size();
        vector<int> used(n,0);
        backtracking(nums,used);
        return res;
    }
};
相关推荐
思考的笛卡尔1 小时前
密码学基础:RSA与AES算法的实现与对比
网络·算法·密码学
Stanford_11065 小时前
如何利用Python进行数据分析与可视化的具体操作指南
开发语言·c++·python·微信小程序·微信公众平台·twitter·微信开放平台
小许学java5 小时前
数据结构-ArrayList与顺序表
java·数据结构·顺序表·arraylist·线性表
千里马-horse7 小时前
Async++ 源码分析8--partitioner.h
开发语言·c++·async++·partitioner
格林威7 小时前
常规线扫描镜头有哪些类型?能做什么?
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·工业镜头
Lucis__7 小时前
再探类&对象——C++入门进阶
开发语言·c++
北京不会遇到西雅图8 小时前
【SLAM】【后端优化】不同优化方法对比
c++·机器人
jndingxin9 小时前
c++多线程(6)------ 条件变量
开发语言·c++
程序员莫小特9 小时前
老题新解|大整数加法
数据结构·c++·算法
小刘max10 小时前
深入理解队列(Queue):从原理到实践的完整指南
数据结构