精华内容
下载资源
问答
  • 查找众数及中位数
    2022-04-01 21:52:05

    注意!答案仅作为参考(实际考试中下列代码通过用例100%,但不代表最优解)
    1.众数是指一组数据中出现次数多的数
    众数可以是多个
    2.中位数是指把一组数据从小到大排列,最中间的那个数,
    如果这组数据的个数是奇数,那最中间那个就是中位数
    如果这组数据的个数为偶数,那就把中间的两个数之和除以2就是中位数
    3.查找整型数组中元素的众数并组成一个新的数组
    求新数组的中位数

    输入描述
    输入一个一维整型数组,数组大小取值范围 0<n<1000
    数组中每个元素取值范围, 0<e<1000

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

        示例一
        输入:
        10 11 21 19 21 17 21 16 21 18 16
        输出
        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
    
    import java.util.*;
    
    更多相关内容
  • 算法:查找众数及中位数
    查找众数及中位数
    1.众数是指一组数据中出现次数量多的那个数,众数可以是多个
    2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数
    3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数
     
    输入描述:
    输入一个一维整型数组,数组大小取值范围 0<N<1000,数组中每个元素取值范围 0<E<1000
    输出描述:
    输出众数组成的新数组的中位数
     
    示例1:
    输入
    10 11 21 19 21 17 21 16 21 18 15
    输出
    21
    示例2:
    输入
    2 1 5 4 3 3 9 2 7 4 6 2 15 4 2 4
    输出
    3
    示例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
    
    import java.util.*;
    public class Main {
        public static void main(String[] args) {
            // 输入
            Scanner scanner = new Scanner(System.in);
            String input = scanner.nextLine();
            String[] s = input.split(" ");
            int[] nums = new int[s.length];
            for (int i = 0; i < nums.length; i++) {
                nums[i] = Integer.parseInt(s[i]);
            }
            scanner.close();
            // 获取众数数组和中位数
            Integer[] manyNums = getManyArr(nums);
            int medium = 0;
            int len = manyNums.length;
            if (len % 2 == 0) {
                medium = (manyNums[len / 2 - 1] + manyNums[len / 2]) / 2;
            } else {
                medium = manyNums[len / 2];
            }
            System.out.println(medium);
        }
     
        private static Integer[] getManyArr(int[] arr) {
            if (arr == null) {
                return new Integer[0];
            }
            // 将数组元素和出现的次数转换为key-value
            Map<Integer, Integer> countMap = new HashMap<>();
            for (int i = 0; i < arr.length; i++) {
                int current = arr[i];
                if (countMap.containsKey(current)) {
                    Integer count = countMap.get(current);
                    countMap.put(current, ++count);
                } else {
                    countMap.put(current, 1);
                }
            }
            // 获取出现最多的次数
            int countMax = 0;
            for (int value : countMap.values()) {
                if (value > countMax) {
                    countMax = value;
                }
            }
            // 获取众数,并排序
            List<Integer> list = new ArrayList<>();
            for (int key : countMap.keySet()) {
                if (countMap.get(key) == countMax) {
                    list.add(key);
                }
            }
            list.sort(new Comparator<Integer>() {
                @Override
                public int compare(Integer o1, Integer o2) {
                    return o1 - o2;
                }
            });
            Integer[] newArr = new Integer[list.size()];
            return list.toArray(newArr);
        }
    }
    
    展开全文
  • 华为机试:查找众数及中位数

    千次阅读 2022-05-13 12:27:47
    查找众数及中位数 题目描述 1.众数是指一组数据中出现次数量多的那个数,众数可以是多个 2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的...

    一道华为od机试的简单题。

    查找众数及中位数

    题目描述

    1.众数是指一组数据中出现次数量多的那个数,众数可以是多个
    2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数
    3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数

    输入描述

    输入一个一维整型数组,数组大小取值范围 0<N<1000,数组中每个元素取值范围 0<E<1000

    输出描述

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

    示例1

    输入

    10 11 21 19 21 17 21 16 21 18 15
    

    输出

    21
    

    示例2

    输入

    2 1 5 4 3 3 9 2 7 4 6 2 15 4 2 4
    

    输出

    3
    

    示例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. 先求众数数组,先统计每个数字出现的次数,统计出现最多次的数字,可以使用hashMap统计并排序。
    2. 求众数数组中的中位数

    参考代码

    import java.util.*;
    
    public class ModeMedius {  // 众数的中位数
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            String[] str = in.nextLine().split(" ");
            int[] nums = new int[str.length];
            for (int i = 0; i < str.length; i++) {
                nums[i] = Integer.parseInt(str[i]);
            }
            // hashmap统计出现的次数
            HashMap<Integer, Integer> map = new HashMap<>();
            for (int i = 0; i < nums.length; i++) {
                map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
            }
            // 按出现次数排序
            List<Map.Entry<Integer,Integer>> list = new ArrayList<>(map.entrySet());
            list.sort((o1, o2) -> o2.getValue() - o1.getValue());
            int max = 0;
            // 获取众数列表
            List<Integer> mode = new ArrayList<>();
            for (Map.Entry<Integer, Integer> entry : list) {
                if (entry.getValue() >= max) {
                    mode.add(entry.getKey());
                    max = entry.getValue();
                } else {
                    break;
                }
            }
            // 计算中位数
            int medium = 0;
            int length = mode.size();
            if (length % 2 == 0) {
                medium = (mode.get(length / 2 - 1) + mode.get(length / 2)) / 2;
            } else {
                medium = mode.get(length / 2);
            }
            System.out.println(medium);
        }
    }
    
    展开全文
  • 1.众数是指一组数据中出现次数量多的那个数,众数可以是多个.2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数...查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数............

    JS版:【华为OD机试真题 JS】查找众数及中位数 

    标题:查找众数及中位数 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限

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

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

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

    输入描述:

    输入一个一维整型数组,数组大小取值范围 0<N<1000,数组中每个元素取值范围 0<E<1000

    展开全文
  • 查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。 输入描述: 输入一个一维整型数组,数组大小取值范围 0<N<1000,数组中每个元素取值范围 0<E<1000 输出描述: 输出众
  • * 查找众数及中位数 * 众数是指一组数据中出现次数量多的那个数,众数可以是多个, 中位数是指把一组数据从小到大排列,最中间的那个数 * 如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的...
  • 题目描述【查找众数及中位数】输入描述输出描述示例1 输入输出示例仅供调试,后台判题数据一般不包含示例输入输出示例2 输入输出示例仅供调试,后台判题数据一般不包含示例输入输出示例3 输入输出示例仅供调试,后台...
  • 标题:查找众数及中位数| 1.众数是指一组数据中出现次数量多的那个数,众数可以是多个 2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的...
  • 2.中位数是指把一组数据从小到大排列,最中间的那个数, 如果这组数据的个数是奇数,那最中间那个就是中位数 如果这组数据的个数为偶数,那就把中间的两个数之和除以2就是中位数 3.查找整型数组中元素的众数并组成一...
  • 先介绍一下众数中位数众数: 一般来说,一组数据中,du出现次数最多的数就叫这组数据的众数。 例如:zhi2,3,3,3,4,5的众数是dao3。 中位数: 把一组数据按从小到大的数序排列,在中间的一个数字(或...
  • 17-查找众数及中位数

    2022-06-06 00:10:27
    17-查找众数及中位数
  • HUAWEI 机试题:众数中位数

    千次阅读 2022-03-03 21:34:25
    查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。 输入描述: 输入一个一维整型数组,数组大小取值范围 0<n<1000 数组中每个元素取值范围, 0<e<1000 输出描述: 输出众数组成的新...
  • 中位数众数

    2021-03-15 10:57:25
    列举一些中位数众数的常见问题和解法1. 众数一个长度为$N$的列表,出现次数大于$\left \lfloor N/2 \right \rfloor$的数为这个列表的众数。1.1 摩尔投票算法摩尔投票算法(Boyer-Moore majority vote algorithm)的...
  • #include <algorithm> using namespace std; #include <stdio.h> #include <time.h> #include <stdlib.h> #include <...void Average(int number[],int n)//求平均 { long.
  • 查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。 输入描述: 输入一个一维整型数组,数组大小取值范围 0<n<1000 数组中每个元素取值范围, 0<e<1000 输出描述: 输出众数组成的...
  • 查找众数及中位数
  • JAVA求数组的平均数,众数中位数

    千次阅读 2021-07-03 13:55:48
    中位数中位数是指把一组数据从小到大排列,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数众数众数是指一组数据中出现...
  • 中位数(又称中值):是统计学中的专有名词,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。众数:是统计学名词,在统计分布上具有明显集中趋势点的数值,代表数据的一般水平...
  • #include #include using namespace std; const int N=20; int num[N]; int main() { int count[100]={0},i,j,sum=0,mode;... } 为啥总有一组数据中位数出错,我检查了感觉那一部分应该没写错,帮忙看看哪不对

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,018
精华内容 807
关键字:

查找众数及中位数

友情链接: CFO_estimate.rar