一个基本的回溯及其演变
void backtrace(vector&record, vector>&res, int index, vectorpath){ if (path.size() == 2) { res.push_back(path); return; } for (int i = index; i < record.size(); i++) { path.push_back(record[i]); backtrace(record, res, i + 1, path); path.pop_back(); }}int main(){ vectorrecord = { 5,4,3,2,1 }; vector>res; vectorpath; backtrace(record,res,0,path); cout << res.size() << endl; for (int i = 0; i < res.size(); i++) { for (int j = 0; j < res[0].size(); j++) { cout << res[i][j] << " "; } cout << endl; }}
输出结果如下:
77. 组合
面试题---求和
leetcode刷题之回溯,深度遍历
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~