黑马程序员技术交流社区

标题: 数组不重复元素的排列组合。。应该怎么写?? [打印本页]

作者: code_geass    时间: 2013-9-10 11:57
标题: 数组不重复元素的排列组合。。应该怎么写??
一个数组长度是N不重复元素组合数为2^n-1  比如{1,2,3} 组合数组{1,2,3,12,13,23,123}
这题想了一天还是没结果。应该是用递归吧。。

作者: mo﹎雲℡    时间: 2013-9-10 12:01
2^n-1 这个是说数组里面的数据呢,还是数组的长度呢?
如果是数据里面的数据,应该是奇数数据。
如果是数据数组的长度呢,也是奇数长度的数据。
这道题是往组数里面添加数据吗?
作者: 静以修身    时间: 2013-9-10 12:52
这道题其实属于算法中的组合问题,可以用很多种方法解决,不单单是递归。比如蛮力法、分治法、减治法、动态规划法、贪心法、回溯法、分治限界法都能解决。
比如用蛮力法解决伪代码:
1.初始化一个长度为n的比特串s=00···0并将对于的子集输出;
2.for(i=1;i<2^n;i++)
{
      2.1 s++;
      2.2 将s对于的子集输出;
}
其实是基于这样的一种关系:n个元素的集合A={a1,a2,```,an}的所有2^n个子集和长度为n的所有2^n个比特串之间的一一对应关系。
希望对你有用!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2