数学中组合的一种递归实现
来源:互联网 发布:北京网络职业学院图片 编辑:程序博客网 时间:2024/05/20 03:44
数学中组合的一种递归实现
import java.util.LinkedList;import java.util.List;class My { public static List<List<Integer>> select(List<Integer> src,int count){ if(count==1){ List<List<Integer>> temp=new LinkedList<List<Integer>>(); for(int i=0;i<src.size();i++){ List<Integer> list=new LinkedList<Integer>(); list.add(src.get(i)); temp.add(list); } return temp; }else{ List<List<Integer>> temp=new LinkedList<List<Integer>>(); for(int i=0;i<=src.size()-count;i++){ int first=src.get(i); List<List<Integer>> tempResult=select(copyList(src,i+1),count-1); for(List<Integer> cur:tempResult){ cur.add(first); temp.add(cur); } } return temp; } } public static List<Integer> copyList(List<Integer> srcList,int startIndex){ List<Integer> newList=new LinkedList<Integer>(); for(int i=startIndex;i<srcList.size();i++){ newList.add(srcList.get(i)); } return newList; } public static void printListofList(List<List<Integer>> listoflist){ for(List<Integer> list:listoflist){ for (int cur:list){ System.out.print(cur+" "); } System.out.println(); } System.out.println("共"+listoflist.size()); } public static void main(String[] argc){ List temp =new LinkedList(); temp.add(1); temp.add(2); temp.add(3); temp.add(4); temp.add(5); printListofList(select(temp,3)); }}
阅读全文
0 0
- 数学中组合的一种递归实现
- 数学排列的一种递归实现
- 实现组合的递归算法
- C++实现递归实现数字的组合
- 2中方法实现数学中组合问题《在10个数中找出任意6个数的组合,数字不能》
- 递归排序的一种实现方法。
- 插入排序的一种递归法实现
- 回溯法 ----- 递归的一种实现
- 递归实现数字的组合(C++)
- 字符串的全组合非递归实现
- 排列与组合的Java递归实现
- 试题:组合的模板非递归实现
- 自己实现的非递归组合
- 组合算法的实现(递归法)
- 组合算法的实现,递归,C语言
- java实现从M个元素中取N个元素的所有组合(数学中的组合问题)
- 字符串的组合问题 递归和非递归实现
- 数组组合的递归与非递归实现
- 关于 qml开发中使用Image元素切换图片闪黑屏 的解决方法
- Java设计模式百例(番外)
- netsh命令开启笔记本电脑自带无线
- Linkcode 66.二叉树的前序遍历
- 模糊控制器设计基本方法
- 数学中组合的一种递归实现
- IntelliJ-IDEA和Git、GitHub、Gitlab的使用(五)
- hibernate入门案例(一)
- 51talk-7 Setting up for a interview
- 计组、离散,对编程特别重要吗?
- CentOS 7 搭建LAMP 环境 学习笔记
- c 文件操作
- 线性表的顺序存储操作
- SpringMVC(八)文件上传