22 查找众数及中位数

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

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

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Integer[] nums =Arrays.stream(sc.nextLine().split(" ")).map(Integer::parseInt).toArray(Integer[]::new);System.out.println(getResult(nums));}public static int getResult(Integer[] nums) {HashMap<Integer, Integer> count = new HashMap<>();// 统计各数字出现次数for (int num : nums) {count.put(num, count.getOrDefault(num, 0) + 1);}// 获取最大出现次数int max = count.values().stream().max((a, b) -> a - b).orElse(0);// 将众数挑选出来ArrayList<Integer> ans = new ArrayList<>();for (Integer k : count.keySet()) {if (count.get(k) == max) ans.add(k);}// 众数升序ans.sort((a, b) -> a - b);// 中位数取值int mid = ans.size() / 2;if (ans.size() % 2 == 0) {// 偶数个数时,取中间两个位置的平均值return (ans.get(mid) + ans.get(mid - 1)) / 2;} else {// 奇数个数时,取中间位置的值return ans.get(mid);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255919.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jest与typescript单元测试

文章目录 前言安装配置.vscode/launch.jsonjest.config.tsts.config.ts 测试例子 前言 简单记录一下vscode里跑Jest单元测试。 安装 yarn add -D ts-jest ts-node types/jest jest 配置 .vscode/launch.json {"version": "0.2.0","configurations…

【文件上传系列】No.0 利用 FormData 实现文件上传、监控网路速度和上传进度(原生前端,Koa 后端)

利用 FormData 实现文件上传 基础功能&#xff1a;上传文件 演示如下&#xff1a; 概括流程&#xff1a; 前端&#xff1a;把文件数据获取并 append 到 FormData 对象中后端&#xff1a;通过 ctx.request.files 对象拿到二进制数据&#xff0c;获得 node 暂存的文件路径 前端…

docker网络【重点】

一、网络知识 1、桥接模式&#xff1a;用于链接两个不同网络段的设备&#xff0c;是共享通信的一种方式 2、桥接设备&#xff1a;工作在OSI模型的第二层&#xff08;数据链路层&#xff09;。根据MAC地址转发数据帧&#xff0c;类似于交换机&#xff0c;只能转发同一网段&…

C++11:lambda表达式(对各个参数详细说明+注意事项+使用案例+探究底层)

目录 一、lambda表达式语法 1.lambda表达式书写格式 2. lambda表达式各部分说明 3.捕获列表说明 二、lambda表达式的一些使用案列 1.借助auto将lambda表达式赋值给一个变量来直接调用。 2.对于类似于sort对自定义类型排序等情况时使用lambda可简化代码 以前我们对自定义…

【SpringBoot】yml配置文件注释中文乱码

错误展示 搭了一个环境&#xff0c;一启动项目&#xff0c;yml文件中文全乱码了 解决措施 按如图顺序操作 结果 再次启动项目&#xff0c;乱码已解决&#xff01;

Spring IoC和DI

目录 一. Spring是什么 IoC DI 二. IoC&DI的使用 IoC 1.Controller&#xff08;控制器存储&#xff09; 2.Service&#xff08;服务存储&#xff09; 3.Repository&#xff08;仓库存储&#xff09; 4.Componemt&#xff08;组件存储&#xff09; 5.Configuratio…

JavaSE基础50题:8. 获取一个数二进制序列中所有的偶数和奇数位,分别输出二进制序列。

概述 获取一个数二进制序列中所有的偶数和奇数位&#xff0c;分别输出二进制序列。 如&#xff1a;从右往左数 0111&#xff08;如图&#xff09; 偶数位&#xff1a;01 奇数位&#xff1a;11 代码 public static void main(String[] args) {Scanner scanner new Scanner(Sys…

c++ - 警告 : treating ‘c-header‘ input as ‘c++-header‘ when in C++ mode, 此行为已弃用

一、问题出现 在进行多文件编译的时候报错 二、原因 我们多文件编译的时候加了头文件 三、解决办法 去掉头文件&#xff0c;只编译源文件

第二十一章总结。。

计算机网络实现了堕胎计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是再已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xff0c;相互之间可以交换数据&#xff0c;编写网络应用程序前&#xff0c;首先必须明确网络协议…

JAVA调优

1 JAVA虚拟机 1.1 基本组成 通常来说Java平台标准版&#xff08;Java SE&#xff09;包括 Java SE开发工具包&#xff08;JDK&#xff09;和Java SE运行时环境&#xff08;JRE&#xff09;。 JRE提供了运行以Java编程语言编写的applet和应用程序所必需的库&#xff0c;Java虚…

(Gemini)双子座:一系列高能力多模态模型的前世今生

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

urllib 的 get 请求和 post 请求(二)

目录 一、爬取网页、图片视频 二、请求对象的定制 三、get请求的urlencode方法 四、post 请求英文翻译 一、爬取网页、图片视频 目标&#xff1a;下载数据 知识点&#xff1a;urllib.request.urlretrieve()下载 使用urllib下载网页、图片和视频 下载网页&#xff1a; #…