寻找身高相近的小朋友js

本文介绍了一道编程题目,内容是帮助小明根据与自己身高差对新班级的小朋友进行排序。输入包含小明的身高h和班级其他小朋友的数量n,以及他们的身高。解题思路是利用哈希表存储身高差,然后通过自定义排序函数实现对小朋友的排序,确保身高差相同时按实际身高升序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

小明今年升学到了小学1年级,来到新班级后,发现其他小朋友身高参差不齐,然后就想基于各小朋友和自己的身高差,对他们进行排序。请帮他实现排序:
输入描述
第一行为正整数 h和n
0<h<200 为小明的身高
0<n<50 为新班级其他小朋友个数
第二行为n各正整数
h1 ~ hn分别是其他小朋友的身高
取值范围0<hi<200
且n个正整数各不相同

     输出描述
      输出排序结果,各正整数以空格分割
      和小明身高差绝对值最小的小朋友排在前面
      和小明身高差绝对值最大的小朋友排在后面
      如果两个小朋友和小明身高差一样
      则个子较小的小朋友排在前面

      示例一
      输入
      100 10
      95 96 97 98 99 101 102 103 104 105
      输出
       99 101 98 102 97 103 96 104 95 105

      说明  小明身高100
      班级学生10个  身高分别为95 96 97 98 99 101 102 103 104 105,按身高差排序后结果为:
      99 101 98 102 97 103 96 104 95 105。

代码:

function compareHigh(arr,len,tall) {
    let map = new Map()
    for(let i = 0 ; i < len ; i++){
        const frequent = Math.abs(tall - arr[i])
        map.set(arr[i],frequent)
    }
    const list = [...map.keys()]
    list.sort(function
根据引用\[1\]和引用\[3\]的描述,可以使用以下代码实现对小朋友身高的排序: ```python def calc(): h, n = map(int, input().split()) heights = list(map(int, input().split())) heights = sorted(heights, key=lambda x: (abs(x - h), x)) print(" ".join(map(str, heights))) while True: try: calc() except: break ``` 这段代码首先读取小明身高和其他小朋友的个数,然后读取每个小朋友身高。接下来,使用`sorted`函数对身高列表进行排序,排序的关键是根据身高的绝对值和身高本身。最后,将排序后的身高列表转换为字符串并打印出来。 请注意,这段代码使用了`try-except`语句来捕获可能的异常,以确保程序在输入结束后正常退出。 #### 引用[.reference_title] - *1* [javascript和java两种方式实现 小明今年升学到小学一年级,来到新班级后发现其他小朋友身高不齐,...](https://blog.youkuaiyun.com/u014125428/article/details/125821448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【华为机试】比较身高问题](https://blog.youkuaiyun.com/weixin_43520002/article/details/125038375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【华为机试真题Python】寻找身高相近小朋友](https://blog.youkuaiyun.com/forest_long/article/details/126915980)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值