马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
目录
一、全分列
二、全分列II
一、全分列
46. 全分列 - 力扣(LeetCode)
- class Solution {
- List<List<Integer>> result=new ArrayList<>();
- LinkedList<Integer> path=new LinkedList<>();
- boolean[] used;
- public List<List<Integer>> permute(int[] nums) {
- used=new boolean[nums.length];
- backtracking(nums);
- return result;
- }
- public void backtracking(int[] nums){
- if(path.size()==nums.length){
- result.add(new ArrayList<>(path));
- return;
- }
- for(int i=0;i<nums.length;i++){
- if(used[i])continue;
- used[i]=true;
- path.add(nums[i]);
- backtracking(nums);
- path.removeLast();//移除最后一个添加的元素
- used[i]=false;//元素修改为未使用
- }
- }
- }
复制代码 二、全分列II
47. 全分列 II - 力扣(LeetCode)
- class Solution {
- List<List<Integer>> result=new ArrayList<>();
- List<Integer> path=new ArrayList<>();
- public List<List<Integer>> permuteUnique(int[] nums) {
- boolean[] used=new boolean[nums.length];
- Arrays.fill(used,false);
- Arrays.sort(nums);
- backtracking(nums,used);
- return result;
- }
- public void backtracking(int[] nums,boolean[] used){
- if(path.size()==nums.length){
- result.add(new ArrayList<>(path));
- return;
- }
- for(int i=0;i<nums.length;i++){
- if(i>0&&nums[i]==nums[i-1]&&used[i-1]==true)continue;
- if(used[i]==false){
- used[i]=true;
- path.add(nums[i]);
- backtracking(nums,used);
- path.removeLast();
- used[i]=false;
- }
- }
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |