Leetcode 46 全排列

给定一个 没有重复 数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutations
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {

    List<List<Integer>> ans = new ArrayList();

        public List<List<Integer>> permute(int[] nums) {
            boolean[] used = new boolean[nums.length];
            recursion(nums, new ArrayList(), used, 0);
            return ans;
        }

        public void recursion(int[] nums, List<Integer> list, boolean[] used, int index) {
            if (index >= nums.length) {
                ans.add(list);
                return;
            }


            for(int i = 0; i < nums.length; i++) {
                if(used[i]) {
                    continue;
                }
                list.add(nums[i]);
                used[i] = true;
                recursion(nums, new ArrayList(list), used, index+1);
                list.remove(list.size() - 1);
                used[i] = false;
            }
        }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目:给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3]输出:[[1,2,3],...
    minningl阅读 91评论 0 0
  • 题目 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3]输出:[[1,2,3],...
    禾木清清阅读 377评论 0 0
  • 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3]输出:[[1,2,3],[...
    huxq_coder阅读 287评论 0 1
  • 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums = [...
    刻苦驴哝阅读 150评论 0 0
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,620评论 0 11