题解 | #数组分组#

数组分组

http://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNextInt()){
            int n = in.nextInt();
            ArrayList<Integer> list = new ArrayList();
            int sum3=0, sum5=0, sum=0;
            for(int i=0;i<n;i++){
                int t = in.nextInt();
                if(t%5 == 0){
                    sum5 += t;
                }else if(t%3 == 0){
                    sum3 += t;
                }else{
                    sum += t;
                    list.add(t);
                }
            }
            int targe = Math.abs(sum5-sum3);   // 按5的倍数和3的倍数分组时,两组的差值targe
            if(sum == targe){  // 差值与剩余数的总和相等,即可以分组,直接把所有的数放在较小值那一组即可
                System.out.println("true");
                continue;
            }
            System.out.println(Judge(list,targe));
        }
    }
    //************************************************ 判断是否可分组
    // 把剩余数按所有情况分组,当两组的差值与targe相等时,即可正确分组
    public static boolean Judge(ArrayList<Integer> list, int targe){
        for(int i=0;i<list.size()-1;i++){
            for(int j=i+1;j<list.size();j++){
                List<Integer> list1 = list.subList(i,j);       // 将list分为两组,list1和(list2+list3)
                List<Integer> list2 = list.subList(0,i);
                List<Integer> list3 = list.subList(j,list.size());
                if(Math.abs(Sum(list1)-Sum(list2)-Sum(list3)) == targe){  // 当两组的差值等于targe时,可以正确分组
                    return true;
                }
            }
        }
        return false;
    }
    //************************************************ 计算总和
    public static int Sum(List<Integer> list){
        int sum = 0;
        for(int i=0;i<list.size();i++){
            sum += list.get(i);
        }
        return sum;
    }
}

全部评论
您这个算不了,只适用顺序结构
1 回复
分享
发布于 2021-12-28 16:16
牛批
点赞 回复
分享
发布于 2022-06-09 23:36
联易融
校招火热招聘中
官网直投

相关推荐

投递美团等公司10个岗位
点赞 评论 收藏
转发
10 2 评论
分享
牛客网
牛客企业服务