数的组合问题,从n个数中选出m个数,结果按照字典序排列
2017-09-04 01:18
507 查看
数的组合问题,从n个数中选出m个数,结果按照字典序排列
数的组合问题。从1,2,…,n中取出m个数,将所有组合按照字典顺序列出。如n=3,m=2时,输出:12 13 23思想:每个数的选择都有可能,比如选择两个数,假设第一个选择的是第i(i从0开始)个数,则剩下的就从i+1到length-1中选择。
实现如下:
import java.util.LinkedHashSet; public class Combination { static LinkedHashSet<String> lSet = new LinkedHashSet<>(); public static void Combination(int[] a, int count, String s) { if(count == 0){ lSet.add(s); return; } for(int i = 0; i < a.length; i++){ int[] b = new int[a.length-(i+1)]; for(int j = 0; j < b.length; j++){ b[j] = a[j+i+1]; } String s2 = s + a[i]; Combination(b, count - 1, s2); } } public static void main(String[] args){ String s = new String(); int[] a = new int[]{1,2,3,4,5}; int count = 3; Combination(a, count, s); System.out.println(lSet.toString()); } } 代码中的count表示要选的数的个数,s是每次选择出的结果。 结果如下: [123, 124, 125, 134, 135, 145, 234, 235, 245, 345]
相关文章推荐
- 一类排列组合计数问题
- 将名字按照字典序排列
- 多重集合的排列和组合问题
- 南邮 OJ 1214 排列的字典序问题
- 字符串的排列组合问题
- 排列组合问题集合
- 一些简单的排列组合问题
- 由Android系统智能手机解锁图案引出的排列组合问题
- ACM学习历程20——竞赛中的简单数学问题之最大公约数、素数表、排列组合数
- JAVA: 字符串的排列和组合问题
- 请初高中及大学老师回答,为什么?(鸽巢原理:排列组合问题)
- 雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果
- 排列组合 "n个球放入m个盒子m"问题 总结(转)
- 排列的字典序问题
- 算法题-排列组合问题
- 字符串的排列组合问题
- 排列组合问题(n取m)
- 关于排列组合与分配问题
- 排列组合问题初步
- 排列组合问题