2.1.3.一串數列中任取n個數字, 總共有幾種組合

  • example code

            class Solution {
             public:
              vector<vector<int>> subsets(vector<int>& nums) {
                  vector<int> record;
                  vector<vector<int>> res;
    
                  for (int i = 0; i < nums.size(); i++){
                      helper(res, nums, record, i + 1 , 0);
              }
                  //加入空list
                  vector<int > temp ;
                  res.push_back(temp);
                  return res;
              }
              void helper(vector<vector<int>>& res, vector<int>&nums, vector<int>&record, int num, int start_point){
                  //終止條件: 剩餘數量=0
                  if (num == 0){
                      res.push_back(record);
                      return;
                  }
                  for (int i = start_point; i < nums.size(); i++){
                      record.push_back(nums[i]);
                      helper(res, nums,record, num - 1, i + 1);
                      record.pop_back();
                  }
              }
        };

Last updated