【番外】数组平分

题目要求:

给定一个数组nums,将元素分为若干个组,使得每组和相等,求出满足条件的所有分组中,组内元素和的最小值 第一行输入 m 接着输入m个数,表示此数组 数据范围:1<=M<=50, 1<=nums[i]<=50 

 算法一:

public class Main{

    public static void main(String[] args) {

        int[] ints = {3, 2, 6, 4, 4, 5};
        //int[] ints = { 3, 6, 3, 6, 4, 5};

        Arrays.sort(ints);
        int min = ints[ints.length-1];      //最小平均值为数组最大值
        int max = Arrays.stream(ints).sum();

        int res = 0;
        for (int i=min; i<max; i++){
            if(max%i == 0){     //满足整除的情况下才能进行平分
                int[] temp = new int[max/i];    //桶的个数
                if(check( ints, 0, temp,  i)){
                    res = i;
                    break;
                }
            }
        }

        System.out.println(res);
    }

    /**
 

猜你喜欢

转载自blog.csdn.net/qq_34465338/article/details/128921629