在這裡,我們用遞歸的思想,對於數據[1, 3, 4]; [2, 5]; [6, 7];我們可以
1.將1,2,6壓入棧中,然後輸出棧中所有元素,之後彈出6
2.壓入7,輸出棧中所有元素,之後彈出7
3.彈出2,壓入5,再壓入6,然後輸出棧中所有元素,之後彈出6
4.壓入7,輸出棧中所有元素,之後彈出7
以此類推,即可得到所有組合。
void get_result_in_vector(Vector<vector<int>> vec,int N,Stack<int> tmp, vector<vector<int>> tmp_result)
{
for(int i=0;i< vec[N].size();++i)
{
tmp.push(vec.get(N).get(i));
if(N<vec.size()-1)
{
get_result_in_vector(vec,N+1,tmp, tmp_result);
}
else
{
vector<int>one_result;
for(inti=0;i<tmp.size();++i)
{
one_result.push(tmp.get(i));
}
tmp_result.push(one_result);
}
tmp.pop();
}
}
void vector<vector<int>> get_all_combination(vector<vector<int>> vec)
{
Stack<int> tmp_vec;
vector<vector<int>> tmp_result;
get_result_in_vector(vec,0,tmp_vec, tmp_result);
return tem_result;
}
本文介绍了一种使用递归思想解决组合问题的Java实现方法,具体通过一个例子展示了如何从[1, 3, 4], [2, 5], [6, 7]等数组中获取所有可能的组合,并提供了相应的代码实现。"
135862059,9298498,Python获取打包目录与管理员权限,"['python', '系统权限']
&spm=1001.2101.3001.5002&articleId=7540110&d=1&t=3&u=d82c40d4f1474c10a898c5903eba93e1)
1052

被折叠的 条评论
为什么被折叠?



