题目描述:

n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。
输入描述:
每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。
输出描述:
输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1。
示例1
输入

4
7 15 9 5
输出

3

思路:

数学问题,依次判断即可。首先输入的是n个奶牛,然后输入一行每个奶牛的苹果数。
计算所有奶牛拥有的苹果总数,平均数。总数不能整除奶牛数则返回-1
依次判断每个奶牛拥有的苹果是否大于平均数,大于的判断超出的值是否能整除2,不能则返回-1
能则将超出的数加起来,除以2即为需要转移的次数

 1 import java.util.*;
 2 public class Fenpingguo {
 3
 4     public static void main(String[] args) {
 5         // TODO Auto-generated method stub
 6         Scanner sc = new Scanner(System.in);
 7         int n = sc.nextInt();
 8         int num = 0;
 9         int[] ai = new int[100];
10         for(int i = 0; i < n; i++){
11             ai[i] = sc.nextInt();
12             num+=ai[i];
13         }
14         int x = num/n;
15         int key = 0;
16         int over = 0;
17         for(int i = 0; i < n; i++){
18             if(ai[i]>x){
19                 over = ai[i]-x;
20                 if(over%2!=0){
21                     System.out.println(-1);
22                     return;
23                 }
24                 key+=ai[i]-x;
25             }
26         }
27         if(num%n!=0) System.out.println(-1);
28         //else if(key%2!=0) System.out.println(-1);
29         else {
30             System.out.println(key/2);
31         }
32     }
33
34 }

转载于:https://www.cnblogs.com/zlz099/p/8520901.html

牛客网在线编程:分苹果相关推荐

  1. 牛客网在线编程----算法入门篇

    标题本篇博文主要是记录下自己的在线编程情况,初次练习,有的算法还待改进,大家有需要可以去牛客网上面多练练! 有需戳–>牛客网在线编程 NC65.题目描述 大家都知道斐波那契数列,现在要求输入一个 ...

  2. 《剑指Offer》面试题四(牛客网在线编程第一题):二维数组中的查找(Java实现)

    题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

  3. 牛客网在线编程——二维数组中的查找

    今天是第二次用牛客的在线编程,上次还是去年的七月一号,已然过去近一年的时间,遇到了不少坑,首先题目看错了,没看到数据是有序的,其次就是对二维数组的输入有些不解,是用户手动输入还是现成的,没有说清楚,最 ...

  4. 牛客网 在线编程 局部最小值位置

    链接:https://www.nowcoder.com/questionTerminal/322eb1da892448f4b18d9b21a6d48c99 来源:牛客网 定义局部最小的概念.arr长度 ...

  5. Python:启程 数据分析-牛客网在线编程-中级函数12-23

    DA12 牛客网不同语言使用人数 当时没有做出来,看答案发现有pandas 计数函数value_counts(),详解参考了以下博主的文章 python value_counts()的基础及进阶用法( ...

  6. 解决牛客网在线编程,本地编译结果正确,提交结果不正确问题!!!

    代码提交后显示: 可我vs上编译的结果明明是对的啊: 经过网上一番查找,本地编译结果正确,提交结果不正确问题主要有两个原因: 1. 因为有多组测试用例,所以输入必须是必须是 while(cin> ...

  7. 牛客网在线编程专题《剑指offer-面试题28》字符串的排列

    我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 公众号介绍:Microstrong(小强)同学主要研究机器学习.深度学习.计算机视觉.智能对话系统相关内容,分享 ...

  8. 牛客网在线编程全部题目

    我的状态 题号 题目 知识点 难度 通过率 考察次数 NC1 大数加法 字符串 模拟 中等 43.92% 46 NC2 重排链表 链表 中等 25.94% 11 NC3 链表中环的入口结点 链表 哈希 ...

  9. 牛客网在线编程专题《剑指offer-面试题33》把数组排成最小的数

    我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 微信公众号介绍:Microstrong(小强)同学主要研究机器学习.深度学习.计算机视觉.智能对话系统相关内容, ...

最新文章

  1. DL之FastR-CNN:Fast R-CNN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  2. 如何保证战略落地_战略如何规划落地?值得借鉴
  3. HALCON示例程序color_pieces.hdev通过MLP训练器对彩色棋子进行分类识别
  4. 运维管理工具-- Deploy Assistant
  5. Python3 爬虫学习笔记 C14【验证码对抗系列 — 点触验证码】
  6. 向Redis中存入JSON格式数据
  7. 阿里面试官:LongAdder和AtomicLong哪个性能更好?我有点懵~
  8. MOS管导通条件概述-过程-压降-提高效率等详解
  9. 计算机专业技术职务评审表怎么填,专业技术职务怎么填
  10. 「励志文章」清华学霸演讲:你可曾为学习拼尽全力?
  11. 数据处理之one-hot
  12. 照片恢复软件哪个好用?5个好用的照片恢复软件推荐
  13. HTML <b> 标签
  14. 【Axure视频教程】中继器表格——排序
  15. ESP8266 NodeMcu 连接onenet 保姆级教学
  16. 单片机原理及接口技术第一章
  17. android 手机支持什么格式的视频格式,手机高清小普及:手机支持那些视频格式?...
  18. 【微积分】算法数学基础之微积分
  19. 群晖保留数据换大硬盘DSM7.0保姆级教程
  20. html移动端隐藏div,bootstrap 如何设置移动端元素隐藏

热门文章

  1. [资源分享] 推荐两本电子书
  2. nginx php7 win,Win7配置Nginx+PHP7
  3. mysql 查询前10门课程_数据库面试题:如何查找每门课程的前3名?
  4. eclipse debug怎么用_利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)
  5. 课堂练习-水帖之王(水王)
  6. Redis在windows下安装过程
  7. xshell报编码问题时可以修改xshell编码
  8. activiti 设置可选处理人_新品速递|高端系列!慧明DF系列线性相位处理专业音箱处理器...
  9. linux 添加path环境变量中,在Linux里设置环境变量PATH的方法是什?
  10. Visual.Assist.X.V10.7.1946的汉化破解补丁