数组中数字的所有组合情况
来源:互联网 发布:java算圆周率 编辑:程序博客网 时间:2024/04/29 15:44
#include <queue>#include <vector>#include <iostream>using namespace std;// 列出数字的所有组合情况// 使用树的层次遍历void Combination(int arr[], int len){if(arr == NULL || len <= 0){return;}queue<vector<int> > q;// 第一层节点入队列for(int i = 0; i < len; ++i){vector<int> v;v.push_back(i);q.push(v);}while(!q.empty()){// 取出队头元素const vector<int>& v = q.front();// 将队头元素的子节点入队for(int i = v.back() + 1; i < len; ++i){vector<int> vChild(v);vChild.push_back(i);q.push(vChild);}// 打印队头节点if(!v.empty()){cout << "[";for(int i = 0; i < v.size(); ++i){if(i > 0){cout << ',';}cout << arr[v[i]];}cout << "]" << endl;}// 队头节点出队q.pop();}}int main(int argc, char* argv[]){int arr[] = {1, 2, 3};Combination(arr, sizeof(arr) / sizeof(int));return 0;}
运行结果:
[1]
[2]
[3]
[1,2]
[1,3]
[2,3]
[1,2,3]
0 0
- 数组中数字的所有组合情况
- 删除数组中所有给定的数字。
- n个数字选出m个求出所有的组合情况
- n对括号组合的所有情况
- 求出数组中满足给定和的所有元素组合
- 【C++】求数组中所有元素的排列或组合
- 回溯---数组序列中所有和为S的组合
- 从数组中找出所有组合为s的数
- Java实现集合的组合(从组合中取出K个元素进行组合的所有情况)
- 回溯法——subsets、subsets-ii数字数组的所有组合
- list中的组合所有情况(无需排列,只是组合所有的情况)
- 一个数字数组中所有的排列(java)
- 在js中,查找数组里面的所有数字
- 从1到10的数中取出3个数的所有组合情况
- 输出N个数中取M个数的所有组合,排列情况
- 输入数字,返回数字代表的字母的所有组合
- 根据数组,生成数组中元素的所有组合,(顺序,与非顺序)
- 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如: 原始字符串是"abc",打印得到下列所有组合情况
- 第三天工作总结
- 关联查询
- C程序基础
- Simple_Wallet 在服务器上部署比特币钱包
- 在xcode环境下创建phonegap项目方法及一个简单的自定义插件示例
- 数组中数字的所有组合情况
- 有关Windows平台下CPU使用率的计算
- Andorid中wifi的学习
- ASP运行环境
- 【Unity基础知识①】初识.NETframework
- 双网卡设置同一网段IP
- 设计模式-模板方法模式
- 漫步空间
- C语言中随机函数的使用