【发布时间】:2013-08-04 15:04:16
【问题描述】:
如果数组是:[1,2,3,4,5,6,7,8,9,10]
最大和为 25
该脚本应创建三个数组
arr1:[1, 2, 3, 4, 5, 6] (sum=21)
arr2:[7,8,9] (sum=24)
arr3:[9,10] (sum=19)
我可以创建第一个数组,但不能创建其他数组,有人可以帮助我吗?
我的 jquery 代码是:
$(document).ready(function(){
numbers=[1,2,3,4,5,6,7,8,9,10]
total = 0;
newOne =[];
for(i = 0; i < numbers.length; i++) {
if(total<= (25-numbers[i])){
total += numbers[i];
newOne.push(numbers[i]);
};
};
numbers.splice(0,newOne.length);
console.log(newOne);
console.log(numbers);
});
谢谢大家
【问题讨论】:
-
分割数组可以只有一个元素吗?
-
给定的数是小数怎么样,比如5,如何拆分数组的其余部分?
-
这个问题有什么限制?原始数组是否总是从一到某个限制的数字?是否总是需要获得三个子集? (显然子集不必是不相交的;对吗?)当问到数论问题时,如果问题也用数学术语来表述会节省很多时间。
-
您可以将
numbers数组中的第一项移动到末尾,然后再次循环遍历它,重复此过程,直到您完成了数组中的每个项。
标签: javascript jquery arrays algorithm