排列组合算法题目
2013-01-10 17:50
218 查看
package com.evertrip.etdspro.test.zf.dotw; /** * 从指定数组中取出任意个数 , 使其和为m (不可重复取) * 思路:以任意组合一个数组为基础。 * @author zhoufeng * */ public class Zuhe4 { static void printArray(int array [], int len){ for (int i = 0; i < len; i++) { System.out.print(array[i] + " "); } System.out.println(); } /** * 从array里面组合n个元素 ,使其和等于m */ static void beibao(int array[] , int tmp[] , int arrayIndex , int tmpIndex , int sum , int m ){ for (int i = arrayIndex ; i < tmp.length; i++) { tmp[tmpIndex] = array[i]; int result = sum + array[i]; // 这里千万不要用 sum += array[i] ; 否则会印象下一轮循环 if(result == m) printArray(tmp , tmpIndex + 1); else if(result > m){ return ; } beibao(array , tmp , i + 1 , tmpIndex + 1 , result , m); } } static void beibao(int array[] , int m){ beibao(array , new int[array.length] , 0 , 0 ,0 , m); } public static void main(String[] args) { int array [] = {1 , 2, 3 , 4 , 5}; beibao(array , 6); } }
package com.zf.action; /** * 从指定数组中取出n个数 , 使其和为m (可重复取) * 思路:以从数组中组合n个元素为基础 * @author zhoufeng * */ public class ZhuHe01 { static void printArray(int array[]){ for (int i : array) { System.out.print(i + " "); } System.out.println(); } static void zhuhe(int[] array , int tmp[] , int arrayIndex , int tmpIndex , int sum , int m ){ if(tmpIndex == tmp.length){ if(sum == m) printArray(tmp); return ; } for (int i = arrayIndex; i < array.length; i++) { tmp[tmpIndex] = array[i]; int result = sum + array[i]; if(result > m) return ; zhuhe(array ,tmp , i , tmpIndex + 1 , result , m); } } static void zhuhe(int array[] , int len , int m){ zhuhe(array , new int[len] , 0 , 0 , 0 , m) ; } public static void main(String[] args) { int array[] = {1 , 2 , 3, 4 , 5 ,6 , 7 , 8 ,9 }; zhuhe(array , 3 , 10); } }
相关文章推荐
- 字符串的排列组合算法合集
- C#实现排列组合算法
- 排列组合和回溯算法-面试题
- 全排列和组合的实现算法
- 算法题7 排列与组合
- 关于排列组合算法的心得
- {C语言算法}排列组合
- 字符串的全排列和组合算法
- 字符串的全排列和组合算法
- 字符串的全排列和组合算法
- 求N选M的组合和求全排列的巧妙算法 - 算法艺术 - Hello, busycai!
- 清华组合数学第一章经典复习题,用六种算法计算839647521后999种排列
- 2015创发科技校园招聘笔试题——排列和组合的算法实现
- 33选6算法:M个数N个为一组,无重复的排列组合
- 全排列组合算法
- 算法练习:排列组合之全排列
- 字符串的全排列和组合算法
- 有人机交互能力的排列组合算法(C++版)
- 数组排列组合算法汇总
- 排列组合数生成算法