`
victordpg
  • 浏览: 16159 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

输出1,2,...,n这组数中任意三个数的不重复组合

    博客分类:
  • Java
阅读更多
	/**
	 * 有一组数1,2,3,4,5输出不重复的由其中三个数组成的组合。
	 * [123, 124, 125, 134, 135, 145, 234, 235, 245, 345]
	 */
    public static void main(String[] args) {
    	List<String> list = new ArrayList<String>();//[1, 2, 3, 4, 5]
    	for(int i=0;i<5;i++){
    		list.add(new Integer(i+1).toString());
    	}

    	List<String> tmp1,tmp2,a;
    	List<List<String>> flag = new ArrayList<List<String>>();
    	
    	List<String> result = new ArrayList<String>();
    	String str1,str2,str3;
    	
    	for(int j=0;j<list.size();j++){
    		//获取第一个数
    		str1 = list.get(j);
    		tmp1 = new ArrayList<String>(list);
    		//tmp1 = list;如果直接针对tmp1进行赋值将会影响到list的值,故需要使用带参数的构造方法赋值。
    		tmp1.remove(j);
    		
    		for (int m = 0; m < tmp1.size(); m++) {
    			//获取第二个数
    			str2=tmp1.get(m);
    			tmp2 = new ArrayList<String>(tmp1);
    			tmp2.remove(m);
    			
    			for(int n=0; n<tmp2.size();n++){
    				//获取第三个参数
    				str3=tmp2.get(n);
    				a = new ArrayList<String>();
    				a.add(str1);
    				a.add(str2);
    				a.add(str3);
    				Collections.sort(a);
    				//过滤重复纪录
    				if(!flag.contains(a)){
    					result.add(str1+str2+str3);
        				flag.add(a);
    				}
    			}
			}
    	}
    	
    	System.out.println(result);
    }
 
这是一个典型的组合问题,根据组合公式:C(n,m)=n!/(n-m)!m!,可以得出从5个数中取出3个不重复的数有10组不重复组合。

结果:[123, 124, 125, 134, 135, 145, 234, 235, 245, 345]

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    世界500强面试题.pdf

    1.6.3. 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数 位于数组的后半部分 ...........................................................130 1.6.4. 给定链表的头指针和一个...

    Linux与unix shell编程指南1.rar

    8.2.5 日期查询 598.2.6 范围组合 60 8.2.7 模式出现机率 60 8.2.8 使用grep匹配“与”或者“或”模式 61 8.2.9 空行 61 8.2.10 匹配特殊字符 61 8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 ...

    freemarker总结

    上面的语法格式中,sequence就是一个集合对象,也可以是一个表达式,但该表达式将返回一个集合对象,而item是一个任意的名字,就是被迭代输出的集合元素.此外,迭代集合对象时,还包含两个特殊的循环变量: item_index:...

    软件测试规范

    2 三.软件测试流程 ............................................................................................................................................ 3 1.软件测试流程图 .......................

    Editplus 3[1].0

    上面重复使用了“[0-9]”,表示连续出现的三个数字 “\0”代表第一个“[0-9]”对应的原型,“\1”代表第二个“[0-9]”对应的原型,依此类推 “[”、“]”为单纯的字符,表示添加“[”或“]”,如果输入“其它\0\1\2...

    LeetCode解题总结

    13.13.1 单词是否由词典中的单词组成 13.13.2 返回所有可以切分的解 14. 图 14.1 图的克隆 15. 细节实现题 15.1 反转整数 15.2 对称数判断 15.3 区间的相关操作 15.3.1 在区间中插入新的区间 15.3.2 合并区间 15.4 ...

    正则表达式

    \W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。 用re = new RegExp("pattern",["flags"]) 的方式比较好 pattern : 正则表达式 flags: g (全文查找出现的所有 pattern) i ...

    计算机二级C语言考试题预测

    (13) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为(B) 注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出 A. 349 B. 350 C. 255 D. 351 (14) 结构化程序设计主要强调的是(B) A.程序的规模 ...

    grub4dos-V0.4.6a-2017-02-04更新

    序列数[last_num]:序列图像总数(2位数,从1开始计数)。 偏移[x]、[y]:图像偏移,单位像素。 起始图像文件 START_FILE 命名规则:*n.??? n: 1-9 或 01-99 或 001-999。 3.增加固定图像的背景色可以透明。 ...

    LINUX与UNIX SHELL编程指南.rar

    18.7.1 简单的while循环 188 18.7.2 使用while循环读键盘输入 188 18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7...

    linux与unix shell编程指南.rar

    linux/unix shell编程指南,全面介绍了Linu/unix shell编程的常用知识和技巧,是不可多得的编程宝典。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 ...18.8.1 ...

    如何编写批处理文件批处理文件批处理文件

    每行中的第二个和第三个符号传递给 for 程序体;用逗号和/或 空格定界符号。请注意,这个 for 程序体的语句引用 %i 来 取得第二个符号,引用 %j 来取得第三个符号,引用 %k 来取得第三个符号后的所有剩余符号。...

    程控交换实验、用户模块电路 主要完成BORSCHT七种功能,它由下列电路组成:

    按一次该键则显示下一个时间值,三个值循环显示,当按下“确认”键时,就选定当前显示值供系统使用,按“复位”键则清除该次时间的设定。 “会议电话”: 该键为召开电话会议的按键。电话会议设置用户1为主叫方,...

    editplus 代码编辑器html c++ jsp css

    (技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。 直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有...

    二级C语言公共基础知识

    答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2) (13) 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。 答:实体 (14) 软件的需求分析阶段的工作,可以概括为四个方面:______、需求...

    linux与unix shell编程指南part2

    18.7.1 简单的while循环 188 18.7.2 使用while循环读键盘输入 188 18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7...

    计算机二级公共基础知识

    例如,在一维数组[21,46,24,99,57,77,86]中,查找数据元素99,首先从第1个元素21开始进行比较,比较结果与要查找的数据不相等,接着与第2个元素46进行比较,以此类推,当进行到与第4个元素比较时,它们相等,...

Global site tag (gtag.js) - Google Analytics