数的组合问题,从n个数中选出m个数,结果按照字典序排列
来源:互联网 发布:淘宝小号怎么注销 编辑:程序博客网 时间:2024/04/28 11:08
数的组合问题,从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]
阅读全文
0 0
- 数的组合问题,从n个数中选出m个数,结果按照字典序排列
- 从m个数中选n个数的排列
- 输出从n个数中选m个数的所有组合
- OC----从N个数中选取M个数的组合
- 从n个数中选取m个数的所有组合
- 所有组合, 所有排列的模板(从n个数中选m个数的所有组合和所有排列)
- 打印从n个数中选取m个数的组合数
- 打印从n个数中选取m个数的组合数
- hdoj 1342 Lotto 【全排列(从n个数中选m个数按字典需排列)】
- 从M个数中选出N个的所有组合情况算法
- n个数中选m个数的全组合...
- n个数中选m个数的全组合...
- 合算法:从m个数中选n个数的所有组合
- 递归实现 从n个数中选取m个数的所有组合
- c++ 组合算法 - 从n中选m个数
- c++ 组合算法 - 从n中选m个数
- python实现n个数中选出m个数
- 面试题:从n个数中选出前k大的数
- 在Mac系统下配置PHP运行环境
- Android--MVP设计模式的理解和总结
- 选择结构、循环结构
- 关于解决mac 显示jvm版本过低的问题(设置java home )
- JavaScript中的同源策略
- 数的组合问题,从n个数中选出m个数,结果按照字典序排列
- struct基础&通过struct和sort结合代替vector列排列
- 牛客网日常刷题错题汇总2017-09-04
- 单例模式
- ThreadPoolExecutor简单介绍及使用
- AndroidStudio基本配置
- springboot jstl
- mac版的mysql 报错ERROR! MySQL server PID file could not be found!
- 一些常见html5语义化标签