如题,
1.暂定长度为n的数组中不存在重复的项
2.忽略数组中项出现的问题,例如数组[1,2]和[2,1]可认为是同一个数组
例如把数组[2,5,8,10]拆分为长度为3的数组,则结果为
[2,5,8]
[2,5,10]
[2,8,10]
[5,8,10]
//arr傳入陣列, num指定組合長度 function Permutation(arr, num){ var r=[]; (function f(t,a,n){ if (n==0) return r.push(t); for (var i=0; i<=(a.length - n); i++){ f(t.concat(a[i]), a.slice(i+1), n-1); } } ([],arr,num)); return r; }
以你舉的例
arr是原始array,傳入[2,5,8,10]
num是長度,傳入3
int[] array=new []{1,2,3,4};
int n=array.Length;//原数组长度
int m=3;//新数组长度
for (int i = 0; i < (n - m); i++)
{
//定义数组
for (int j = i; j < (i + m); j++)
{
//添加值到新数组
}
}
// 大致就这个思路吧!你再调整调整
高中排列组合题。。