LeetCode 0046 — 全排列

LeetCode 0046 — 全排列全排列题目描述给定一个没有重复数字的序列 返回其所有可能的全排列

大家好,欢迎来到IT知识分享网。

全排列

题目描述

给定一个没有重复数字的序列,返回其所有可能的全排列。

示例:

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

解题思路

个人AC

没有思路QAQ。

最优解

回溯算法是一种尝试探索所有可能的候选解来找出所有解的算法。如果候选解被确认“不是一个解(或至少不是最后一个解)”,就回溯到上一个“回溯点”进行一些变化后再次尝试。

在这里插入图片描述

class Solution { 
    public List<List<Integer>> permute(int[] nums) { 
    // construct output list List<List<Integer>> output = new ArrayList<>(); // convert nums into list since output is a list of lists List<Integer> sequence = new ArrayList() { 
   { 
    for (int num : nums) { 
    this.add(num); } }}; int n = nums.length; backtrack(output, sequence, n, 0); return output; } private void backtrack(List<List<Integer>> output, List<Integer> sequence, int n, int first) { 
    // if all integers are used up if (first == n - 1) { 
    output.add(new ArrayList<>(sequence)); return; } for (int i = first; i < n; i++) { 
    // place i-th integer first in the current permutation Collections.swap(sequence, first, i); permute(output, sequence, n, first + 1); // backtrack Collections.swap(sequence, first, i); } } } 

时间复杂度: O ( A n n ) O(A^{n}_{n}) O(Ann)

空间复杂度: O ( n A n n ) O(nA^{n}_{n}) O(nAnn)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/148903.html

(0)
上一篇 2025-03-27 18:00
下一篇 2025-03-27 18:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信