首页 > 编程语言 >letcode算法--18.全排列

letcode算法--18.全排列

时间:2022-11-10 19:56:10浏览次数:45  
标签:nums -- 18 List first li int letcode out

回溯算法

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums 中的所有整数 互不相同
class Solution {
    public List<List<Integer>> permute(int[] nums) {
       int len = nums.length;
        List<Integer> out = new ArrayList<>();
        List<List<Integer>> li = new ArrayList<>();
        for (int num:nums){
            out.add(num);
        }
        back(len,out,li,0);
        return li;
    }
    
    public void back(int n, List<Integer> out, List<List<Integer>> li, int first){
        if (first == n){
            li.add(new ArrayList<Integer>(out));
        }
            for (int i = first; i < n; i ++){
                Collections.swap(out,first,i);
                back(n,out,li,first + 1);
                Collections.swap(out,first,i);
            }
    }
}

  

标签:nums,--,18,List,first,li,int,letcode,out
From: https://www.cnblogs.com/xinger123/p/16878577.html

相关文章

  • 本地启动kafka
    本文以mac演示1)首先将kafka安装包解压到本地,进入kafka目录cdcdkafka_2.13-3.2.12)启动kafka环境bin/zookeeper-server-start.shconfig/zookeeper.properti......
  • 第六章7
    【题目描述】一年一度的校园歌手大奖赛开赛啦!!!跟往年一样得到了大家的踊跃响应,报名人数巨多,按惯例还是要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~10......
  • 数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
     全文链接:http://tecdat.cn/?p=22262在讨论分类时,我们经常分析二维数据(一个自变量,一个因变量) ( 点击文末“阅读原文”获取完整代码数据******** )。但在实际生活中......
  • cookie,session,token
    一、cookie1、cookie简介cookie是存储在浏览器的文本数据,大小不超过4kb,有一个名称和值,还有其他的一些属性组成,包括有效期,安全性,适用范围等,某些网站采用session机制识别用......
  • Day 10
    Neo找了些硬件基础,看了两集下午摸鱼加看了点王爽汇编,用了旧电脑写了easy难度leetcode一小个下午,一直在找不输出的Bug.最后发现是平台需要回传*returnSize大小,外加头尾对......
  • curl请求apollo api获取服务详细信息
    1、提交api开放接口 2、截取lb服务名称curl-s-H"Authorization:7b9e9852e10e5c7e52f7a80e09ee0a3e17a6815b"-H"Content-Type:application/json;charset=UTF-8"......
  • 力扣203 移除链表元素
    题目:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例:输入:head=[1,2,6,3,4,5,6],val=6输......
  • 初识指针
    指针intmain(){ inta=10;//a在内存中要分配空间的—4个字节 printf("%p\n",&a);//%p专门用来打印地址的 int*pa=&a;//pa是用来存放地址的,在C语言中pa叫指针......
  • 【学习笔记】数论
    前言:基本参照OIWIKI数论数论分块参考博客henry_y参考博客Miniqwq常见形式:\[f(n,k)=\sum\limits_{i=1}^{n}\lfloor\frac{k}{i}\rfloor\]画个双曲线图,在图上找到符合......
  • [15-445]Database Storage2 related memo
    Storage1主要介绍了slotted-page组织数据的情况。但是这种方式会有一些问题比如1.页分裂(比如在一个页上面操作,后续对其进行操作可能会有删除的操作后续可能需要使用......