题解 | #分苹果#

分苹果

http://www.nowcoder.com/practice/a174820de48147d489f64103af152709

import java.util.Arrays;
import java.util.Scanner;
 
/**
 * @ClassName Main
 * @Description
 * @Author fucheng.guo
 * @Since 2022-2-18 10:50
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            // 牛的数量
            int cattleCount = in.nextInt();
            // 每个牛拥有的苹果数量组成的数组
            int[] appleArray = new int[cattleCount];
            // 苹果总数
            int totalApple = 0;
            for(int i = 0; i < cattleCount; i++) {
                int a = in.nextInt();
                totalApple += a;
                appleArray[i] = a;
            }
            
            // 苹果总数 取余 牛的数量,验证是否能平均分配
            if(totalApple % cattleCount != 0) {
                System.out.println(-1);
                return;
            }
            
            int operate = 0;
            int average = totalApple / cattleCount; // 苹果总数 除以 牛的数量,既平均每个牛分到的苹果数
            int exceed;
            for(int n : appleArray) {
                if(n > average) {
                    exceed = n - average; // 获取超出平均数的苹果数
                    if(exceed % 2 != 0) {
                        // 超出平均数的苹果数 无法满足题目要求
                        // 只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上
                        System.out.print(-1);
                        return;
                    } else {
                        // 只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上
                        // 一次拿走俩个,超出部分都拿走需要的次数(exceed / 2),
                        operate += exceed / 2;
                    }
                }
            }
            System.out.println(operate);
        }
    }
}
全部评论

相关推荐

02-16 22:13
门头沟学院 Java
Yki_:女生学成这样挺不错了,现在停止网课,立刻all in八股,从最频繁的开始背,遇到不会的知识点直接问AI,项目也别手敲,直接看技术文档,背别人总结好的面试官可能问的问题的答案,遇到不会的再去代码里找具体实现就可以了,3月份开始边背边投实习约面
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务