[Leetcode]#78 Subsets
来源:互联网 发布:单片机软件工程师岗位 编辑:程序博客网 时间:2024/05/21 14:59
Given a set of distinct integers, nums, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3], a solution is:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
//#78 Subsets//8ms 89.70%class Solution {public: void selectionSort(vector<int>& nums) { if(nums.empty() || nums.size() == 1) return; for(unsigned int i=0; i<nums.size(); i++) { unsigned int p(i); for(unsigned int j=i+1; j<nums.size(); j++) { if(nums[p] > nums[j]) { p = j; } } if(p != i) { int tmp(nums[i]); nums[i] = nums[p]; nums[p] = tmp; } } return; } vector< vector<int> > subsets(vector<int>& nums) { vector <vector<int> > result; vector<int> empty_v; result.push_back(empty_v); if(nums.empty()) return result; selectionSort(nums); for(unsigned int i = 1; i < nums.size() + 1; i ++) { //i, the number of elements in sub array for(unsigned int j = 0; j < nums.size() - i + 1; j ++) { //j, the starting point of sub array vector<int> v; push_vector(result, v, j, i, nums); } } return result; } void push_vector(vector <vector<int> >& result, vector<int> v, int p, int number_left, vector<int>& nums) { v.push_back(nums[p]); number_left --; if(number_left != 0) { for(unsigned int j = p + 1; j < nums.size() - number_left + 1; j ++) { push_vector(result, v, j, number_left, nums); } } else { //cout << "Pushing a combination back...\n"; //for(unsigned int i=0; i<v.size(); i++) //{ // cout << v[i]; //} //cout << endl; result.push_back(v); } return; }};
0 0
- [LeetCode 78] Subsets && [LeetCode 90] Subsets II
- LeetCode 78: Subsets
- LeetCode 78 Subsets
- [leetcode 78] Subsets
- Leetcode NO.78 Subsets
- [LeetCode 78]Subsets
- leetcode-78 Subsets
- leetcode || 78、Subsets
- Subsets - LeetCode 78
- leetcode 78 :Subsets
- LeetCode(78) Subsets
- Leetcode #78 Subsets
- leetcode 78: Subsets
- [leetcode-78]subsets(java)
- [Leetcode]#78 Subsets
- LeetCode(78) Subsets
- leetCode #78 subsets
- [leetcode]#78 Subsets
- [Leetcode]#66 Plus One
- [Leetcode]#67 Add Binary
- [Leetcode]#69 Sqrt(x)
- Node.js开发入门—引入UIBootstrap
- [Leetcode]#74 Search a 2D Matrix
- [Leetcode]#78 Subsets
- JPA - Introduction
- [Leetcode]#82 Remove Duplicates from Sorted List II
- [Leetcode]#83 Remove Duplicates from Sorted List
- [Leetcode]#86 Partition List
- Linux下添加新硬盘,分区及挂载
- 网络管理技术(一)
- Linux 查看系统硬件信息(实例详解)
- [Leetcode]#88 Merge Sorted Array