首页 新闻 会员 周边

求一个算法,把一个长度为n的数组,拆分为x个长度为m的数组,N>M

0
悬赏园豆:5 [已解决问题] 解决于 2015-11-23 13:42

如题,

1.暂定长度为n的数组中不存在重复的项

2.忽略数组中项出现的问题,例如数组[1,2]和[2,1]可认为是同一个数组

例如把数组[2,5,8,10]拆分为长度为3的数组,则结果为

[2,5,8]

[2,5,10]

[2,8,10]

[5,8,10]

grayboy的主页 grayboy | 初学一级 | 园豆:190
提问于:2015-11-23 11:11
< >
分享
最佳答案
0
//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

收获园豆:5
RosonJ | 老鸟四级 |园豆:4910 | 2015-11-23 12:03
其他回答(2)
0

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++)
{
//添加值到新数组
}
}
// 大致就这个思路吧!你再调整调整

..00.. | 园豆:49 (初学一级) | 2015-11-23 11:53
0

高中排列组合题。。

吴瑞祥 | 园豆:29449 (高人七级) | 2015-11-23 11:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册