首页 > 其他分享 >力扣回溯 之46. 全排列

力扣回溯 之46. 全排列

时间:2024-02-11 20:44:39浏览次数:23  
标签:nums 46 ArrayList List 力扣 int result 回溯 new

给定一个不含重复数字的数组 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]]



import java.util.ArrayList; import java.util.List;
//leetcode submit region begin(Prohibit modification and deletion) class Solution {     List<List<Integer>> result = new ArrayList<>();     List<Integer> temp  = new ArrayList<>();
    public List<List<Integer>> permute(int[] nums) {         if(nums==null || nums.length == 0){             return new ArrayList<>();         }         backtrack(result,nums,0);         return result;     }
    void backtrack(List<List<Integer>> result, int[] nums,int index) {         if(index == nums.length){             result.add(new ArrayList<>(temp));             return;         }         for(int i = 0;i<nums.length;i++){             if(temp.contains(nums[i])){                 continue;             }             temp.add(nums[i]);             backtrack(result,nums,index+1);             temp.remove(temp.size()-1);         }
    } }

标签:nums,46,ArrayList,List,力扣,int,result,回溯,new
From: https://www.cnblogs.com/JavaYuYin/p/18013519

相关文章

  • 力扣回溯 深度优先搜索 dfs 之 17. 电话号码的字母组合
    给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。 示例1:输入:digits="23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf&qu......
  • 力扣回溯 深度优先搜索dfs之78. 子集
    给你一个整数数组 nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。 示例1:输入:nums=[1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例2:输入:nums=[0]输出:[[],[0]] classSol......
  • 力扣递归 两道简单题合成一道中等题之148. 排序链表
    递归归并排序,先找到终点,再合并两个链表 给你链表的头结点 head ,请将其按升序排列并返回排序后的链表。 示例1:输入:head=[4,2,1,3]输出:[1,2,3,4]示例2:输入:head=[-1,5,3,4,0]输出:[-1,0,3,4,5]示例3:输入:head=[]输出:[]/** *Definitionforsingl......
  • 力扣快慢双指针之876. 链表的中间结点
    给你单链表的头结点head,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 示例1:输入:head=[1,2,3,4,5]输出:[3,4,5]解释:链表只有一个中间结点,值为3。示例2:输入:head=[1,2,3,4,5,6]输出:[4,5,6]解释:该链表有两个中间结点,值分别为3......
  • 力扣递归之88. 合并两个有序数组
    给你两个按非递减顺序排列的整数数组 nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初......
  • 力扣递归之21. 合并两个有序链表
    将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。  示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]classSolution{publicListN......
  • Leetcode刷题第九天-回溯
    113:路径总和II链接:113.路径总和II-力扣(LeetCode)root=[-2,null,-3],targetSum=-5莫要忘记负数情况......
  • CF1446C Xor Tree 题解
    解题思路与其考虑删除哪些点,不如考虑保留哪些点。考虑到和异或有关,那么我们可以把这些数倒序插入trie树中,然后我们就可以在trie树上跑一个简单的dp:若当前节点为叶子节点,那么保留,返回\(1\);若当前节点在链上,那么直接继承儿子节点;若当前节点有两个儿子,那么更新为较大儿子......
  • 力扣刷题——SQL
    力扣刷题——高频SQL50题:题目链接:https://leetcode.cn/problems/department-top-three-salaries/?envType=study-plan-v2&envId=sql-free-50185.部门工资前三高的所有员工:表:Employee:Department+--......
  • 今天回顾-回溯算法-131. 分割回文串
    注意点&感悟:对这个范围还是没太梳理清楚,我的感觉是当前位置是start_index,每轮的结束是i所以范围是[start_index,i+1]题目链接:131.分割回文串自己独立写的代码:classSolution:defpartition(self,s:str)->List[List[str]]:res=[]self.back......