50-17

50题 第17天 全排列 1

  • 给定一个没有重复数字的序列,返回其所有可能的全排列。
  • 链接: 力扣.

50-17_第1张图片

  • 我的代码如下:


class Solution {
    public List<List<Integer>> permute(int[] nums) {      
        List<List<Integer>> resultList = new ArrayList<>();
        List<Integer> result = new ArrayList<>();       
        recursion(resultList,result,nums);
        return resultList;
    }
    public void recursion(List<List<Integer>> resultList,List<Integer> result,int[] nums){   
       if(result.size()==nums.length)
        {
            resultList.add(new ArrayList<>(result));
        }
       else
        {
        for(int i=0;i<nums.length;i++){              
           if(result.contains(nums[i])){
                    continue;
        }
       else
       { 
         result.add(nums[i]);                   
         recursion(resultList,result,nums);                   
         result.remove(result.size()-1);
       }
            }
        }
    }
}

运行结果

在这里插入图片描述我的感受就是最近的题目都有点难的啊,都是一种思想的表现,要是没有想到的话根本没法做出来。今天这道题考的是一个回溯的思想,并且用递归的方式来实现全排列,知道无法递归(判断出现重复)的时候考察回溯。

你可能感兴趣的:(50-17)