【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 身高差值排序(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📎在线评测链接

https://app5938.acapp.acwing.com.cn/contest/2/problem/OD1058

🌍 评测功能需要 ⇒ 订阅专栏 ⇐ 后私信联系清隆解锁~

🍓OJ题目截图

在这里插入图片描述

文章目录

    • 📎在线评测链接
    • 🍓OJ题目截图
    • 🪐 身高差值排序
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码

🪐 身高差值排序

问题描述

K小姐和她的同学们身高都不太一样。她想按照每个同学与自己的身高差值的绝对值进行从小到大排序。如果两个同学与 K小姐身高差值的绝对值相等,那么身高较矮的同学排在前面。现在请你帮助 K小姐实现这个身高差值排序。

输入格式

第一行包含两个正整数 H H H N N N,其中 0 < H < 200 0 < H < 200 0<H<200 表示 K小姐的身高, 0 < N < 50 0 < N < 50 0<N<50 表示其他同学的人数。

第二行包含 N N N 个正整数 H 1 H_1 H1 ~ H N H_N HN,表示其他每个同学的身高,满足 0 < H i < 200 0 < H_i < 200 0<Hi<200 ( 1 ≤ i ≤ N 1 \le i \le N 1iN),且所有的 H i H_i Hi 互不相同。

输出格式

输出身高差值排序后的结果,每个数之间用一个空格隔开。

样例输入

100 10
95 96 97 98 99 101 102 103 104 105

样例输出

99 101 98 102 97 103 96 104 95 105

数据范围

  • 0 < H < 200 0 < H < 200 0<H<200
  • 0 < N < 50 0 < N < 50 0<N<50
  • 0 < H i < 200 0 < H_i < 200 0<Hi<200 ( 1 ≤ i ≤ N 1 \le i \le N 1iN)

题解

本题主要考察了对结构体的使用以及自定义排序规则。我们可以将每个同学的身高 H i H_i Hi 与 K小姐的身高差值的绝对值 ∣ H − H i ∣ |H-H_i| HHi 作为第一关键字,身高 H i H_i Hi 作为第二关键字,构建结构体并自定义排序规则,然后将所有同学按照这个规则进行排序即可。

对于 C++ 语言,我们可以使用 pair<int,int> 来存储 ( ∣ H − H i ∣ , H i ) (|H-H_i|,H_i) (HHi,Hi),然后对 pair 进行排序;
对于 Java 语言,我们可以自定义一个类 Student,然后实现 Comparable 接口,重写 compareTo 方法来定义排序规则;
对于 Python 语言,我们可以使用 (|H-H_i|,H_i) 作为元组直接进行排序。

最后将排序后的结果依次输出即可。

参考代码

  • Python
h, n = map(int, input().split())
heights = list(map(int, input().split()))
diffs = [(abs(h - x), x) for x in heights]
diffs.sort()
print(' '.join(map(str, [x[1] for x in diffs])))
  • Java
import java.io.*;
import java.util.*;class Student implements Comparable<Student> {int diff;int height;public Student(int diff, int height) {this.diff = diff;this.height = height;}@Overridepublic int compareTo(Student other) {if (this.diff != other.diff) {return Integer.compare(this.diff, other.diff);} else {return Integer.compare(this.height, other.height);}}
}public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int H = sc.nextInt();int N = sc.nextInt();Student[] students = new Student[N];for (int i = 0; i < N; i++) {int height = sc.nextInt();students[i] = new Student(Math.abs(H - height), height);}Arrays.sort(students);for (Student student : students) {System.out.print(student.height + " ");}}
}
  • Cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {int h, n;cin >> h >> n;vector<pair<int, int>> students;for (int i = 0; i < n; i++) {int height;cin >> height;students.emplace_back(abs(h - height), height);}sort(students.begin(), students.end());for (auto student : students) {cout << student.second << " ";}return 0;
}

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

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

相关文章

22种常用设计模式示例代码

文章目录 创建型模式结构型模式行为模式 仓库地址https://github.com/Xiamu-ssr/DesignPatternsPractice 参考教程 refactoringguru设计模式-目录 创建型模式 软件包复杂度流行度工厂方法factorymethod❄️⭐️⭐️⭐️抽象工厂abstractfactory❄️❄️⭐️⭐️⭐️生成器bui…

如何配置node.js环境

文章目录 step1. 下载node.js安装包step2. 创建node_global, node_cache文件夹step3.配置node环境变量step3. cmd窗口检查安装的node和npm版本号step4. 设置缓存路径\全局安装路径\下载镜像step5. 测试配置的nodejs环境 step1. 下载node.js安装包 下载地址&#xff1a;node.js…

application/x-www-form-urlencoded和json的区别

application/x-www-form-urlencoded 和 application/json 是两种不同的数据格式&#xff0c;常用于HTTP请求中传递数据。 它们各自的特点和使用场景如下&#xff1a; 1. application/x-www-form-urlencoded •特点&#xff1a;这是一种传统的表单提交时采用的编码类型&#x…

24年新版!这份Excel+Python飞速搞定数据分析手册,简直可以让Excel飞起来

前⾔ 微软在 UserVoice 上运营着⼀个反馈论坛&#xff0c;每个⼈都可以在这⾥提交新点⼦供他⼈投票。票数最⾼的功能请求是“将 Python 作为Excel 的⼀门脚本语⾔”&#xff0c;其得票数差不多是第⼆名的两倍。尽管⾃2015 年这个点⼦发布以来并没有什么实质性进展&#xff0c;…

Java基础学习-算术运算符-案例

目录 运算符&#xff1a; 表达式&#xff1a; 简单练习&#xff1a; 案例&#xff1a;拆分 数字运算注意点 隐式转换&#xff08;自动类型提升&#xff09;&#xff1a; 强制转换&#xff1a; 字符串操作&#xff1a; 字符&#xff1a; 运算符&#xff1a; 对字面量或…

为数据安全护航,袋鼠云在数据分类分级上的探索实践

在大数据时代&#xff0c;数据具有多源异构的特性&#xff0c;且价值各异&#xff0c;企业需依据数据的重要性、价值指数等予以区分&#xff0c;以利采取不同的数据保护举措&#xff0c;避免数据泄露。故而&#xff0c;数据分类分级管理属于数据安全保护中极为重要的环节之一。…

Coco Test Engine:代码覆盖率分析的新时代

本文翻译自&#xff1a;Coco Test Engine – The New Era of Code Coverage Analysis 原文作者&#xff1a;Qt Group首席软件工程师Sbastien Fricker 审校&#xff1a;Felix Zhang 我们的Coco 7重大更新带来了一个长期以来备受期待的功能——测试数据生成&#xff08;即Coco …

对角线法则的由来

目录 一、前言 二、对角线法则 三、行列式的定义 1. 行列式的定义 2. (全)排列 3. 逆序数 四、由全排列逆序数 到 对角线法则规律 ​编辑 五、参考书目 一、前言 仅限于个人理解&#xff0c;对错没有查证。 二、对角线法则 提起对角线法则&#xff0c;我们更倾向于他是…

Rocky Linux 9.4 部署Zabbix 7.0

文章目录 Zabbix基本概念zabbix介绍zabbix特性zabbix结构 安装Zabbix主机名配置配置Zabbix-Server(1)禁用EPEL提供的Zabbix软件包(2)安装Zabbix Server、Web前端、Agent(3)创建初始数据库(4)Zabbix server配置数据库(5)为Zabbix前端配置PHP(6)启动Zabbix server和agent进程(7)放…

RK3588 代码中导入torch报错

RK3588 代码中导入torch报错 使用RK3588测试官方的YOLOv8,出现下面的问题 发现是dfl函数中导入torch的时候产生的&#xff0c;但是我在python终端上执行导入torch并没有发生报错 Traceback (most recent call last):File "infer.py", line 243, in <module>b…

Linux进程概念(个人笔记)

Linux进程概念 1.冯诺依曼体系结构2.操作系统&#xff08;先描述&#xff0c;再组织&#xff09;3.进程3.1查看进程的方式3.2通过系统调用获取进程标识符3.4查看进程中常见字段状态的指令3.3fork创建子进程3.3.1fork的原理 3.4进程状态3.5进程优先级3.5.1Linux内核的调度队列与…

RK3568技术笔记十二 Android编译方法

Android源码说明 Android源码在SAIL-RK3568开发板光盘->Android->源代码中&#xff0c;由于android源码太大&#xff0c;在进行压缩时&#xff0c;进行分包压缩&#xff0c;因此有4部分&#xff0c;如图所示&#xff1a; 进行解压时&#xff0c;需将4部分压缩包放置同一…

【论文精读】DALLE2: Hierarchical Text-Conditional Image Generation with CLIP Latents

文章目录 一、前言&#xff08;一&#xff09;DALLE2 简介&#xff08;二&#xff09;DALLE2和DALLE的对比&#xff08;三&#xff09;相关模型推出时间 二、文章概要&#xff08;一&#xff09;标题&#xff08;二&#xff09;摘要&#xff08;三&#xff09;引言&#xff08;…

9.华为交换机telnet远程管理配置aaa认证

目的&#xff1a;telnet远程管理设备 LSW1配置 [Huawei]int Vlanif 1 [Huawei-Vlanif1]ip add 1.1.1.1 24 [Huawei-Vlanif1]q [Huawei]user-interface vty 0 4 [Huawei-ui-vty0-4]authentication-mode aaa [Huawei-ui-vty0-4]q [Huawei]aaa [Huawei-aaa]local-user admin pass…

白酒:酒文化的教育价值与实践

酒文化作为中国传统文化的重要组成部分&#xff0c;具有丰富的教育价值。云仓酒庄的豪迈白酒作为酒文化的品牌之一&#xff0c;在传承与发展中不断挖掘和发挥酒文化的教育价值。 首先&#xff0c;豪迈白酒有责任传承丰富的历史文化知识。从酒的起源、酿造技艺、酒器文化到酒礼酒…

java实战——图书管理项目

文章目录 项目所需要的技术栈项目演示项目准备工作环境准备数据库数据准备 前后端交互分析&#xff08;前端代码我们使用现成&#xff09;图书列表界面的创建查看前端发送的请求根据前端接收的返回值来编写model层根据请求编写controller层根据controller编写Service根据Servic…

Linux C语言:指针与数组

一、指针与数组的基本用法 数组指针是指数组在内存中的起始地址&#xff0c;数组元素的地址是指数组元素在内存中的起始地址一维数组的数组名为一维数组的指针&#xff08;起始地址&#xff09; 例如&#xff1a; double x[8]; 因此&#xff0c;x为x数组的起始地址 设指针变…

什么是浏览器指纹

在数字互联网时代&#xff0c;我们的在线活动几乎都会留下痕迹。其中&#xff0c;浏览器指纹就像我们的数字身份证&#xff0c;让网站能够识别和追踪用户。本文将详细介绍浏览器指纹是什么&#xff0c;它如何工作。 一、什么是浏览器指纹 浏览器指纹&#xff08;Browser Fing…

【C语言 || 排序】希尔排序

文章目录 前言1.希尔排序1.1 直接插入排序1.2 直接插入排序的实现1.2.1 直接插入排序的代码实现 1.3 直接插入排序的时间复杂度1.4 希尔排序1.4.1 希尔排序概念1.4.1 希尔排序的代码实现 前言 1.希尔排序 1.1 直接插入排序 在写希尔排序之前&#xff0c;我们需要先了解直接插入…

stable diffusion 局部重绘 reference-only api 接口调试

webUI api payload 插件生成的接口参数不准确&#xff0c;reference-only 的image不是对象&#xff0c;就是不同字符串字段&#xff0c;直接传&#xff0c;不是套image。 综上&#xff0c;那个插件参数不确定&#xff0c;应直接看插件的源码&#xff0c;看它接受什么参数 错误…