java-有一个数组,数组里任意个数数字相加等于一固定数值,求出所有可能性的任意数字组合?

问题描述

有一个数组,数组里任意个数数字相加等于一固定数值,求出所有可能性的任意数字组合?

最近遇到一道java算法题,给定一个数组,求出数组里任意个数相加等于一固定数值,求出所有可能性的任意数字组合?求解答,用最原始的算法做出这道题,求大神指点,大神给出答案?

解决方案

/**
*
* @param arr
* 数组
* @param num
* 固定值
* @return 组合
*/
public static List a(int[] arr, int num) {
List strList = new ArrayList();
for (int i = 0; i < arr.length; i++) {
int all = i;
String str = i + ",";
for (int j = 0; j < arr.length; j++) {
all += j;
str += j + ",";
if (all == num) {
strList.add(str);
}
}
}
return strList;
}

解决方案二:

上面可以参考下我的代码:
http://blog.csdn.net/cxming007/article/details/23944863

时间: 2024-12-23 21:41:15

java-有一个数组,数组里任意个数数字相加等于一固定数值,求出所有可能性的任意数字组合?的相关文章

任意元素和-求一个数组中选出任意个数元素相加之和,求大神指教

问题描述 求一个数组中选出任意个数元素相加之和,求大神指教 求一个数组中选出任意个数元素相加之和,求大神指教 比如打印出arry[8]中,任意两个数相加的和,任意三个数相加的和,直到任意八个数相加的和. 求大神指教. 解决方案 不知道你用的什么语言 如果C#,参考我写的http://bbs.csdn.net/topics/390550326 这个问题其实就是求M选N,其中M=8,N循环1-8 然后得到每个组合再求和. 解决方案二: 不知道你使用的是什么语言,不过思路是这样的,你的要求是不是随机数

c语言-求教编写一个函数求出两个字符串包含的相同的单词

问题描述 求教编写一个函数求出两个字符串包含的相同的单词 编写一个函数,函数首部为void maxword(char *s,char *t),求出两个字符串包含的相同单词(同一字母的大小写视为不同的字符).规定单词全部由英文字母构成,单词直接由一个或多个空格分隔.其中主函数如下: #include Void main() { Char s[]="This is C programming text"; Char t[]="This is a text for C progra

java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示。

问题描述 java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示. 用java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示. 解决方案 数组可以表示很多数的-你说,用一个数表示啥意思?? 解决方案二: 你应该是想要下面的实现.如果有用请采纳. import java.util.ArrayList; import java.util.List; public class TestMain { public static void main(String

【算法】给定一个数组,除了一个数出现1次之外,其余数都出现3次,输出出现一次的那个数。

给定一个数组,除了一个数出现1次之外,其余数都出现3次.找出出现一次的数.如:{1, 2, 1, 2, 1, 2, 7},找出7.格式:第一行输入一个数n,代表数组的长度,接下来一行输入数组A[n],(输入的数组必须满足问题描述的要求),最后输出只出现一次的数. package yn; import java.util.Scanner; public class OutputMin { public static void main(String[] args) { Scanner input

异常-java核心技术中一个关于数组的例子不理解,请教大家

问题描述 java核心技术中一个关于数组的例子不理解,请教大家 Person是Employer的父类,Employer有个新方法setBonus,代码如下 Employer[] emprs ={new Employer("张三"),new Employer("李四")}; Person[] ps =emprs; ps[0] = new Person("小明");//运行时该行报错ArrayStoreException emprs[0].setBo

javascript-js判断一个数组不包含一个数

问题描述 js判断一个数组不包含一个数 比如一个数组[1234] 变量a从1循环到5,怎么把5这个数取出来 解决方案 Array.prototype.mycontains = function(e) { for(i=0;i<this.length;i++) { if(this[i] == e) return true; } return false; } 然后这么用for (var i = 0; i <= 5; i++)if (!arr.mycontains(i)) alert(i); 解决方

c语言-C语言里想要用函数创建一个新的字符数组,并使其等于原有的一个字符数组该怎么做?

问题描述 C语言里想要用函数创建一个新的字符数组,并使其等于原有的一个字符数组该怎么做? #include #include #include char map[4][4]; char creat()//创建一个新的字符数组 { char *maze=(char)malloc(sizeof(map)); return maze; } void main() { int i,j; for(i=0;i<4;i++) { gets(map[i]); } char *maze=creat(); strc

一个数组存储的几个数,怎么让这些数成为另外一个数组的下标输出显示?

问题描述 一个数组存储的几个数,怎么让这些数成为另外一个数组的下标输出显示? 一个数组存储的几个数,怎么让这些数成为另外一个数组的下标输出显示 解决方案 什么意思?是a[b[i]]这种意思吗? 解决方案二: 好吧!我实在没看懂题目.

C++ 将pData[]数组中任意个数相加最接近Length(6000)的一组一组输出到a[];

问题描述 C++ 将pData[]数组中任意个数相加最接近Length(6000)的一组一组输出到a[]; 如果 pData[Count]={4000,1700,1600,1400,1345,1200,1050,870,452,450,297,120,110,104,98,.....} int* OptimizeData(int *pData,int Count,int Length); //Count 总个数,Length固定长度(6000) { int *a=new int[Count];