problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
leetcode::combination_sum_ii::Solution类 参考

#include <leetcode.h>

静态 Public 成员函数

static vector< vector< int > > combinationSum2 (vector< int > &candidates, int target)
 
static vector< vector< int > > recurse (vector< int > &candidates, int target, int index)
 

详细描述

在文件 leetcode.h2417 行定义.

成员函数说明

◆ combinationSum2()

vector< vector< int > > leetcode::combination_sum_ii::Solution::combinationSum2 ( vector< int > &  candidates,
int  target 
)
static

在文件 leetcode.cpp6486 行定义.

6486 {
6487 sort(candidates.begin(), candidates.end());
6488 const auto ret = recurse(candidates, target, -10);
6489 vector<vector<int>> ans(ret.size());
6490 for(int i = 0; i < ret.size(); i++) {
6491 ans[i] = vector<int>(ret[i].size());
6492 for(int j = 0; j < ret[i].size(); j++) {
6493 ans[i][j] = candidates[ret[i][j]];
6494 }
6495 }
6496 return ans;
6497 }
static vector< vector< int > > recurse(vector< int > &candidates, int target, int index)
Definition: leetcode.cpp:6499

引用了 recurse().

◆ recurse()

vector< vector< int > > leetcode::combination_sum_ii::Solution::recurse ( vector< int > &  candidates,
int  target,
int  index 
)
static

在文件 leetcode.cpp6499 行定义.

6499 {
6500 vector<vector<int>> ans;
6501 for(int i = max(0, index + 1); i < candidates.size(); i++) {
6502 if(!(i > 0 && candidates[i] == candidates[i - 1] && index != i - 1)) {
6503 const auto &candidate = candidates[i];
6504 if(candidate == target) {
6505 ans.emplace_back(vector(1, i));
6506 } else if(target - candidate >= 1) {
6507 auto res = recurse(candidates, target - candidate, i);
6508 for(auto &vec: res) {
6509 vec.push_back(i);
6510 ans.push_back(vec);
6511 }
6512 }
6513 }
6514 }
6515 return ans;
6516 }
int vec[100010]
Definition: pat.cpp:5095

引用了 recurse() , 以及 pat::a::a7_2::vec.

被这些函数引用 combinationSum2() , 以及 recurse().


该类的文档由以下文件生成: