46. 全排列

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

示例:

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

回溯法(java)

class Solution {
    public List<List<Integer>> permute(int[] nums) {
        List<List<Integer>> res = new ArrayList<List<Integer>>(); 
        int visited[] = new int[nums.length];
        backTrack(new ArrayList<Integer>(),visited,nums,res);
        return res;      
    }
    public void backTrack( ArrayList<Integer> tep ,int visited[],int nums[],List<List<Integer>> res){
        if(tep.size() == nums.length){
            res.add(new ArrayList<Integer>(tep));
            return;
        }
        for(int i = 0 ; i < nums.length ; i++){
            if(visited[i] == 1) continue;
            tep.add(nums[i]);
            visited[i] = 1; 
            backTrack(tep,visited,nums,res);
            visited[i] = 0;
            tep.remove(tep.size()-1);
        }
    }
}
上一篇:2021年把公众号做成自己喜欢的样子


下一篇:python将数组转换成csv文件