0
点赞
收藏
分享

微信扫一扫

【每日一题】【回溯】2021年11月5日--全排列

妖妖妈 2022-05-27 阅读 83

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

【每日一题】【回溯】2021年11月5日--全排列_javascript

 

 注意:List里面的list记得转型【父类引用指向子类对象】

class Solution {
public List> permute(int[] nums) {
List> res = new ArrayList<>();
backtrack(res, nums, new ArrayList<>());
return res;
}

public void backtrack(List> res, int[] nums, List temp) {
if(temp.size() == nums.length) {
res.add(new ArrayList(temp));
//为啥res.add(temp);不行,因为要转型,才能符合其类型
return;
}
for(int i = 0; i < nums.length; i ++) {
if(temp.contains(nums[i])) {
continue;
}
//做选择
temp.add(nums[i]);
backtrack(res, nums, temp);
temp.remove(temp.size() - 1);
}
}
}

 


作者:哥们要飞​


举报

相关推荐

0 条评论