• leetcode 216. Combination Sum III


    Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.

    Note:

    • All numbers will be positive integers.
    • The solution set must not contain duplicate combinations.

    Example 1:

    Input: k = 3, n = 7
    Output: [[1,2,4]]
    

    Example 2:

    Input: k = 3, n = 9
    Output: [[1,2,6], [1,3,5], [2,3,4]]

    思路:回溯法

     1 class Solution {
     2 public:
     3     vector<vector<int>> combinationSum3(int k, int n) {
     4         if (k <= 0)
     5             return {};
     6         vector<vector<int> > res;
     7         vector<int> v;
     8         combinationSum3(k, n, res, v, 1);
     9         return res;
    10     }
    11 private:
    12     void combinationSum3(int k, int n, vector<vector<int> > &res, vector<int> &v, int begin) {
    13         if (int(v.size()) == k && n == 0) {
    14             res.push_back(v);
    15             return ;
    16         }
    17         for (int i = begin; i <= 9 && n >= i; i++) {
    18             v.push_back(i);
    19             combinationSum3(k, n - i, res, v, i + 1);
    20             v.pop_back();
    21         }
    22     }
    23 };
  • 相关阅读:
    CTF简介
    最先与最后
    记一次某校版facemash的搭建
    ipv6入门
    win10开启IPv6的两种方法
    安装 Go 1.11 在 Ubuntu 18.04 & 16.04 LTS
    python开发者的AsyncIO
    Python 异步--Await the Future
    Python元类
    alias 和 unalias 命令
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/11429723.html
Copyright © 2020-2023  润新知