js实现以下需求:有任意长度的js数组,需将数组的元素进行合理的分组。
要求结果是,最小化分组数,且每组的元素之和不超过一个指定数值。
一个简单的形式实例:var arrInstance = [300,530,234,893,124,12,1034,400];
function smartDevide(aArr,sumLimit){
//code here
//need to return an array
}
var group = smartDevide(arrInstance,1100);
/*可能的结果
group =[[1034],[893,124,12],[530,300,234],[400]];
随便组了点数据,希望大伙能明白
*/
要求结果是,最小化分组数,且每组的元素之和不超过一个指定数值。
一个简单的形式实例:var arrInstance = [300,530,234,893,124,12,1034,400];
function smartDevide(aArr,sumLimit){
//code here
//need to return an array
}
var group = smartDevide(arrInstance,1100);
/*可能的结果
group =[[1034],[893,124,12],[530,300,234],[400]];
随便组了点数据,希望大伙能明白
*/
http://baike.baidu.com/view/298415.htm#1加油~~~
#include <stdio.h>
int main(){
int a[100],b[100],i,z,j,k,m;
while (scanf("%d",&k)&&k)
{
for( i=0;i<k;i++){
scanf("%d %d",&a[i],&b[i]);
}
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++){
if(b[i]>b[j]){
z=a[i];
a[i]=a[j];
a[j]=z;
z=b[i];
b[i]=b[j];
b[j]=z;
}
}
// for(i=0;i<k;i++)
// printf("%d %d\n",a[i],b[i]);
m=1;
j=0;
for(i=1;i<k;i++){
if(a[i]>=b[j]){
m++;
j=i;
}
}
printf("%d\n",m);
}
return 0;
}