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]]; 
随便组了点数据,希望大伙能明白
*/

解决方案 »

  1.   

    我希望这个题你能自己写出来 
    http://baike.baidu.com/view/298415.htm#1加油~~~
      

  2.   

    找了一下以前写的,思路一样
    #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;
    }