zoukankan      html  css  js  c++  java
  • 百度2020春招 笔试算法题第一题 需要买多少瓶果汁

    题目描述

    小度和同事们一起去春游,天气炎热,小度自告奋勇去给大家买果汁。

    员工一共有n名(包括小度),果汁一共有k种,第i位员工每个人都有自己最喜欢的一种果汁a_i。

    小度到达果汁商店的时候,被告知商店正在举行促销活动,全场果汁买一送一(购买一瓶i型果汁,再赠送一瓶i型果汁)。

    小度想让所有人(包括小度)都拿到他们最喜欢的果汁,需要购买多少瓶呢?

    输入描述

    第一行两个整数n,k分别表示员工人数和果汁种类数。

    第二行n个整数,表示i号员工最喜欢的果汁种类是a_i。

    输出描述

    一个整数,表示小度需要购买的瓶数(赠品不算购买的)。

    示例1

    输入

    5 3

    1 2 3 1 2

    输出

    3

    示例2

    输入

    6 2

    1 2 1 2 1 2

    输出

    4

    思路分析:

    1、首先统计每种果汁有多少人喜欢喝

    2、将第i种果汁喜欢喝的人数/2并向上取整,得到第i种果汁应该买多少瓶

    3、将统计到的每种果汁应该买多少瓶的数目相加,得到最后结果。

    java 代码如下:

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int m = sc.nextInt();
            int n = sc.nextInt();
            int[] mm = new int[m];
            int[] nn = new int[n];
            for (int i = 0; i < m; i++) {
                mm[i] = sc.nextInt();//存储第i人喜欢喝的果汁的种类
                nn[mm[i]-1]++;//将第i人喜欢喝的果汁的数目+1
            }
            int sum = 0;
            for (int i = 0; i < n; i++) {
                if(nn[i]>0)
                    sum+=((nn[i]+1)/2);//将统计到的每种果汁喜欢喝的人数/2并向上取整,得到每种果汁应该买多少瓶并求和
            }
            System.out.println(sum);
        }
    }
  • 相关阅读:
    前端网络安全——其他安全问题
    前端网络安全——密码安全
    前端网络安全——接入层注入
    前端网络安全——点击劫持
    mac重装系统后安装列表
    manjaro踩坑记录
    JavaScript学习过程中遇到的一些坑
    JavaScript学习
    [解决方法] 如何在没有屏幕的情况下训练一些需要显示的程序
    Python中*号的作用详解
  • 原文地址:https://www.cnblogs.com/l199616j/p/12498037.html
Copyright © 2011-2022 走看看