首页 > 其他 > 详细

Leetcode 90: Subsets II

时间:2017-11-13 12:53:39      阅读:142      评论:0      收藏:0      [点我收藏+]

Given a collection of integers that might contain duplicates, nums, return all possible subsets (the power set).

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,2], a solution is:

[
  [2],
  [1],
  [1,2,2],
  [2,2],
  [1,2],
  []
]

 

 

 
 
 1 public class Solution {
 2     public IList<IList<int>> SubsetsWithDup(int[] nums) {
 3         var results = new List<IList<int>>();
 4         
 5         if (nums.Length == 0) return results;
 6         
 7         Array.Sort(nums);
 8         results.Add(new List<int>());
 9         DFS(nums, 0, new List<int>(), results);
10         return results;
11     }
12     
13     private void DFS(int[] nums, int start, IList<int> result, IList<IList<int>> results)
14     {
15         for (int i = start; i < nums.Length; i++)
16         {
17             if (i == start || nums[i] != nums[i - 1])
18             {
19                 result.Add(nums[i]);
20                 results.Add(new List<int>(result));
21                 DFS(nums, i + 1, result, results);
22                 result.RemoveAt(result.Count - 1);
23             }
24         }
25     }
26 }

 

Leetcode 90: Subsets II

原文:http://www.cnblogs.com/liangmou/p/7825614.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!