首页 > 其他分享 >力扣中46 全排列

力扣中46 全排列

时间:2023-03-14 16:56:42浏览次数:35  
标签:排列 46 res List 力扣 int new output first

//可以用类似77组合那种方法 只不过加了访问数组 
    //也可以用官方题解来搞 设置一个正确排列后直接进行交换 
    public List<List<Integer>> permute(int[] nums) {
        int len=nums.length;
        List<List<Integer>> res=new ArrayList<List<Integer>>();
        List<Integer> output=new ArrayList<Integer>();
        
        for (int i:nums) {
            output.add(i);
        }
        backtrack(len,output,res,0);//最开始设置为1 不一样 这是数组
        return res;
    }
    
    // 这些参数不好写啊 first是当前待排位置
    public void backtrack(int n, List<Integer> output, List<List<Integer>> res, int first) {
        if(first==n) {
            res.add(new ArrayList<>(output));
//            return;  这个return没必要
//对于77那种是一个一个往路里加 够了就停止后面的 现在是直接排好换序 会有现在排好的多种子情况
        }
        for(int i=first;i<n;i++) {
            Collections.swap(output, first, i);//list链表的交换 不会写
            backtrack(n,output,res,first+1); //这块的first我写成了i
            Collections.swap(output, first, i);
        }
    }

 

标签:排列,46,res,List,力扣,int,new,output,first
From: https://www.cnblogs.com/ayuanjiejie/p/17215506.html

相关文章

  • 力扣中77 组合
    单句return;的用法:  上午看了题解下午照猫画虎的publicList<List<Integer>>combine(intn,intk){//List<List<Integer>>res=newArrayList<>();//......
  • 力扣178(MySQL)-分数排名(中等)
    题目:表: Scores编写SQL查询对分数进行排序。排名按以下规则计算:分数应按从高到低排列。如果两个分数相等,那么两个分数的排名应该相同。在排名相同的分数后,排名数应......
  • 力扣904 水果成篮
    水果成篮:按顺序取,问连续最多的两个数有几个。总体思路:1、如果是我们要的数,直接数量加一;2、如果是新的数,那么j-1的位置的数就是第一个数,j位置的数就是第二个数。并且要......
  • 力扣简21 合并两个有序链表
    递归特别短!没这种思维!  自己用那种最直白的两个两个相比换指针指向导致会有空情况等特殊情况出错 看了题解是用递归什么的扩展一下这种思路而且可以采用给链表加......
  • S2 - Lesson 46 - Expensive and uncomfortable
    Wordsunload wooden goods extremely discoveroccur admit astonish confine pile woolen normal        Content Exp......
  • 力扣180(MySQL)-连续出现的数字(中等)
    题目:编写一个SQL查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。查询结果格式如下面的例子所示: 解题思路:原表数据: 方法......
  • P1462 通往奥格瑞玛的道路
    城市之间有mm条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量。每次经过一个城市,都会被收取一定的过路费(包括起点和终点)。路上并......
  • 力扣---78. 子集
     给你一个整数数组 nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。 示例1:输入:nums=......
  • 力扣---面试题 17.05. 字母与数字
    面试题17.05.字母与数字给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子......
  • 1460. 我在哪?(二分,哈希)
    https://www.acwing.com/problem/content/167/n为100,因此对于我们这种枚举k值,枚举两个子串起点来判定是否存在相同子串的暴力做法O(N^4)是可以过的#include<iostream>#......