【免费题库】华为OD机试C卷 - 查找众数及中位数(python代码+解析)

须知

文章目录

    • 须知
    • 题目描述
    • 输入描述
    • 输出描述
    • 用例
    • 解题思路:
    • Python代码如下:

题目描述

众数是指一组数据中出现次数量多的那个数,众数可以是多个。

中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数。

查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。

输入描述

输入一个一维整型数组,数组大小取值范围 0

输出描述

输出众数组成的新数组的中位数

用例

输入 10 11 21 19 21 17 21 16 21 18 15
输出 21
输入 2 1 5 4 3 3 9 2 7 4 6 2 15 4 2 4
输出 3
输入 5 1 5 3 5 2 5 5 7 6 7 3 7 11 7 55 7 9 98 9 17 9 15 9 9 1 39
输出 7

解题思路:

  1. 首先,我们需要找到数组中的众数。可以通过统计每个元素出现的次数,然后找出次数最多的元素。
  2. 然后,我们需要将众数组成一个新的数组。
  3. 接下来,我们需要计算新数组的中位数。可以通过对新数组进行排序,然后根据数组长度的奇偶性来找到中位数。
  4. 最后,输出中位数。

Python代码如下:

你可能感兴趣的:(华为od)