原创

[百战LeetCode][37. 没有重复项数字的全排列]


==========================努力奋斗财源广进==========================

一、算法题目

给出一组数字,返回该组数字的所有排列 例如: [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1]. (以数字在数组中的位置靠前为优先级,按字典序排列输出。)

1、我的题解

import java.util.*;

public class Solution {
    ArrayList<ArrayList<Integer>> res = new ArrayList<>();

    public ArrayList<ArrayList<Integer>> permute(int[] num)
    {
        LinkedList<Integer> ans = new LinkedList<>();
        backTrack(num, ans);
        return res;
    }


    public void backTrack(int[] num, LinkedList<Integer> ans)
    {
        int arrayLen = num.length;
        if(ans.size() == arrayLen)
        {
            res.add(new ArrayList<>(ans));
            return;
        }

        for(int i = 0; i < arrayLen; i++)
        {
            if(ans.contains(num[i])) continue;
            ans.add(num[i]);
            backTrack(num, ans);
            ans.removeLast();
        }

    }
}


2、优秀题解

//待定

三、解法心得

四、自我监督

评论区记录复习记录

  • 作者:北斗七点半联系作者
  • 发表时间:2022-12-11 23:01
  • 版权声明:禁止转载
  • 非公众号转发
  • 评论