zoukankan      html  css  js  c++  java
  • 分苹果(网易)

    题目描述

    n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。

    输入描述:

    每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。

    输出描述:

    输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1。
    示例1

    输入

    4
    7 15 9 5

    输出

    3

    分析:1、最后所有奶牛得到的苹果相同,所以就是苹果总数除以奶牛数,最后大家都是平均苹果数,如果有余数,就输出-1;2、奶牛间移动苹果是两个移一次,所以当有奶牛的苹果数与平均苹果数的差值不是2的整数倍,那么说明无法移动成功,输出-1,如果差值都是2的整数倍,就计算差值大于0的(也就是大于平均苹果数的)那些差值的和,最后除以2就行。

    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            while(sc.hasNext()){
                int n=sc.nextInt();
                int[] a=new int[n];
                int total=0;//总苹果
                for(int i=0;i<n;i++){
                    a[i]=sc.nextInt();
                    total+=a[i];
                }
                if(total%n!=0){
                    System.out.println(-1);
                    break;
                }
                int ev=total/n;//平均每个奶牛多少苹果
                /*找到大于ev的和小于ev的,将2看成一个整体,只要一个数大于或小于ev的差不是2的整数倍,就输出-1.。
                如果都是2的整数倍,那么只需找出所有大于ev的数值和,除以2 就行*/
                int t=0;
                boolean flag=false;
                for(int i=0;i<n;i++){
                    int cha=a[i]-ev;
                    if(cha%2!=0){
                        flag=true;
                        break;
                    }
                    if(cha>0) t+=cha;
                }
                
                if(flag){
                    System.out.println(-1);
                }else{
                    System.out.println(t/2);
                }
            }
        }
    }
    
    
  • 相关阅读:
    20201226 ZooKeeper
    20201220 分布式理论、架构设计(自定义RPC)
    20201217 Cluster模式潜在问题及解决方案、Web服务综合解决方案
    20201216 Nginx
    20201214 Tomcat
    20201209 Spring Boot
    20201206 Spring Data JPA
    20201205 Spring MVC
    20201128 IoC容器设计实现及Spring源码分析
    numpy数组及处理:效率对比
  • 原文地址:https://www.cnblogs.com/xiaolovewei/p/8260478.html
Copyright © 2011-2022 走看看