Data structure & Algorithm
  • Initial page
  • 1212
  • 121231
  • 2.algorithm
    • 2.1.backtracking
      • 2.1.1.連續序列的排列組合(可能會重複)
      • 2.1.3.一串數列中任取n個數字, 總共有幾種組合
      • 2.1.2.一串數列中取n個數字, 共有幾種組合
    • 2.5.Quick sort
    • 2.6.2.6.廣度優先搜尋 (Breadth-first Search)
    • 2.2.Binary Search
    • 2.1.Backtracking
    • 2.4.河內塔 (Tower of Hanoi)
    • 2.7.動態規劃
    • 2.8.深度優先搜尋 (Depth-first Search)
    • 2.7.二分搜尋法
    • 2.3.分治法 (Divide and Conquer)
  • 2.Count and Say
  • 1.Leetcode Algorithm Practice
  • 2-count-and-say
    • c-solution
    • javascript-solution
  • Algorithm
  • 123
Powered by GitBook
On this page

Was this helpful?

  1. 2.algorithm
  2. 2.1.backtracking

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();
                  }
              }
        };
Previous2.1.1.連續序列的排列組合(可能會重複)Next2.1.2.一串數列中取n個數字, 共有幾種組合

Last updated 5 years ago

Was this helpful?