Leetcode刷題 - 排列組合類
阿新 • • 發佈:2020-09-11
78. 子集 - Subsets
1 class Solution { 2 public: 3 vector<vector<int>> subsets(vector<int>& nums) { 4 vector<vector<int>> output; 5 output.push_back({}); 6 7 for (int i = 0; i < nums.size(); i++){ 8 int size = output.size(); 9for (int j = 0; j < size; j++){ 10 auto sub = output[j]; 11 sub.push_back(nums[i]); 12 output.push_back(sub); 13 } 14 } 15 return output; 16 } 17 };
90. 子集 - Subsets II
1 class Solution { 2 public: 3vector<vector<int>> subsetsWithDup(vector<int>& nums) { 4 sort(nums.begin(), nums.end()); 5 vector<vector<int>> output; 6 output.push_back({}); 7 8 for (int i = 0; i < nums.size(); i++){ 9 int size = output.size();10 for (int j = 0; j < size; j++){ 11 auto temp = output[j]; 12 temp.push_back(nums[i]); 13 // handle duplicate cases 14 bool found = false; 15 // find whether there is a duplicate case 16 for (int k = 0; k < output.size(); k ++){ 17 if (temp == output[k]){ 18 found = true; 19 break; 20 } 21 } 22 23 if(!found) 24 output.push_back(temp); 25 } 26 } 27 28 return output; 29 } 30 };