一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 247|回复: 0
收起左侧

[Leetcode] Permutation 2 中的一个判断条件

[复制链接] |试试Instant~ |关注本帖
desperatelife 发表于 2016-9-27 03:01:53 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
判断重复元素的条件if(i > 0 && nums == nums[i - 1] && !used[i - 1]) continue;  if(i > 0 && nums == nums[i - 1] && used[i - 1]) continue;
这两个都是对的,这个应该怎么理解呢


  1. public class Solution {
  2.     public List<List<Integer>> permuteUnique(int[] nums) {
  3.         List<List<Integer>> res = new ArrayList<List<Integer>>();
  4.         if(nums==null || nums.length==0) return res;
  5.         boolean[] used = new boolean[nums.length];
  6.         List<Integer> list = new ArrayList<Integer>();
  7.         Arrays.sort(nums);
  8.         dfs(nums, used, list, res);
  9.         return res;
  10.     }

  11.     public void dfs(int[] nums, boolean[] used, List<Integer> list, List<List<Integer>> res){
  12.         if(list.size()==nums.length){
  13.             res.add(new ArrayList<Integer>(list));
  14.             return;
  15.         }
  16.         for(int i=0;i<nums.length;i++){
  17.             if(used[i]) continue;
  18.             if(i>0 &&nums[i-1]==nums[i] && !used[i-1]) continue;
  19.             used[i]=true;
  20.             list.add(nums[i]);
  21.             dfs(nums,used,list,res);
  22.             used[i]=false;
  23.             list.remove(list.size()-1);
  24.         }
  25.     }
  26. }
复制代码

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 09:12

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表