From 4c214298836df78f4c39bc4461163287a7d3c10a Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 13 May 2020 18:35:51 +0800 Subject: Add problem 77 . --- cpp/.gitignore | 4 +++- cpp/77.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 cpp/77.cpp (limited to 'cpp') diff --git a/cpp/.gitignore b/cpp/.gitignore index adb36c8..d1d85a8 100644 --- a/cpp/.gitignore +++ b/cpp/.gitignore @@ -1 +1,3 @@ -*.exe \ No newline at end of file +*.exe +*.pdb +*.ilk \ No newline at end of file diff --git a/cpp/77.cpp b/cpp/77.cpp new file mode 100644 index 0000000..ec09198 --- /dev/null +++ b/cpp/77.cpp @@ -0,0 +1,45 @@ +#include + +using std::vector; + +void combine1(int start, int end, int rest_select_count, vector &head, vector> &result) +{ + if (rest_select_count == 0) + { + for (int i = start; i < end; i++) + { + head.push_back(i); + result.push_back(head); + head.pop_back(); + } + return; + } + + for (int i = start; i < end - rest_select_count; i++) + { + head.push_back(i); + combine1(i + 1, end, rest_select_count - 1, head, result); + head.pop_back(); + } +} + +class Solution +{ +public: + vector> combine(int n, int k) + { + vector> result; + + vector head; + combine1(1, 1 + n, k - 1, head, result); + + return result; + } +}; + +int main() +{ + Solution s; + auto result = s.combine(20, 16); + return 0; +} \ No newline at end of file -- cgit v1.2.3