题目:

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

     输出描述输出排序结果,各正整数以空格分割和小明身高差绝对值最小的小朋友排在前面和小明身高差绝对值最大的小朋友排在后面如果两个小朋友和小明身高差一样则个子较小的小朋友排在前面示例一输入100 1095 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(a,b) {if(map.get(a) == map.get(b)) {return a-b } else {return map.get(a) - map.get(b)}})return list
}console.log(compareHigh([95,96,97,102,101,99,98,103,104,105],10,100))//打印结果为:[
//   99, 101, 98, 102,
//   97, 103, 96, 104,
//   95, 105
// ]

解题思路:

  • 用哈希表存储数组中的元素,也就是每个小朋友身高,哈希表中的value值为和小明身高差的绝对值。
  • 用...扩展运算符将map中的key取出放入到数组list当中,然后对list数组进行自定义排序。
  • 自定义排序判断每个小朋友身高跟小明对应的绝对值差是否相同,如果相同的话那就直接按照身高的高低来进行排序,矮的在前面,高的在后面,因此是a-b(升序);如果身高差不相同,那么直接按照身高差进行排序,身高差小的在前面,矮的在后面,因此是map.get(a)-map.get(b)。
  • 可以看到结果中将输入的数组中身高差相同但高的放在矮的前面,依然可以得到正确结果。

寻找身高相近的小朋友js相关推荐

  1. 【华为OD机试真题 JAVA】寻找身高相近的小朋友

    JS版:[华为OD机试真题 JS]寻找身高相近的小朋友​​​​​​​ 标题:寻找身高相近的小朋友 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 小明今年升学到小学一年级,来到新 ...

  2. 寻找身高相近的小朋友

    小明今年升学到了小学1年纪 来到新班级后,发现其他小朋友身高参差不齐 然后就想基于各小朋友和自己的身高差,对他们进行排序 请帮他实现排序 输入描述 第一行为正整数 h和n 0<h<200 ...

  3. 【华为机试真题 Python实现】寻找身高相近的小朋友

    文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...

  4. 华为OD机试 - 寻找相似单词(Java JS Python)

    题目描述 给定一个可存储若干单词的字典,找出指定单词的所有相似单词,并且按照单词名称从小到大排序输出. 单词仅包括字母,但可能大小写并存(大写不一定只出现在首字母). 相似单词说明:给定一个单词X,如 ...

  5. HWOD机试真题(JavaScript)

    本栏有100+道算法题,并提供正确解法(JavaScript)和解题思路.保证都是华为机试真题(非练习题),大概率会考到原题.大家有什么问题可以留言探讨和交流.         华为机试有三道算法题, ...

  6. 华为OD机试真题2022(JAVA)

    华为机试题库已换 →→→ 华为OD机试2023B卷(JAVA&JS) 以下题目为旧版题库,供大家课外消遣 基础题: 序号 题目 分值 1 查找众数及中位数 100 2 出错的或电路 100 3 ...

  7. 2023 华为OD机试备考攻略 以及题库目录分值说明 考点说明 (A卷+ B卷)

    文章目录 华为OD在线刷题OJ 华为题库 更新说明 支持的语言 题库目录 华为OD统一考试[A卷]题库-100分 华为OD统一考试[A卷]题库-200分 华为OD统一考试[B卷]题库-100分 华为O ...

  8. 某厂机试算法刷题一览

    牛客网-华为笔试面试机考在线练习 力扣刷题 All posts in 德科机试一星题 A机试叮当猫-华为机试真题 GavenHwang的博客-华为机试 coder 明轩博客-华为机试23题总结 目录 ...

  9. 【华为机试真题Java】从入门到入职-真题列表导读

    写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...

最新文章

  1. 美式期权定价python_【优质好课】Python量化期权实战应用
  2. Redhat下XFS的安装
  3. SAP 固定资产减值准备配置及期初导入
  4. 如何使用Cyberduck登录SAP Leonardo机器学习服务的AWS在线存储
  5. 并行算法第二讲:并行算法基础知识
  6. 中关村十大AI研究院 | 盘点
  7. comsol3.5安装教程
  8. 计算机本科毕业论文选题单片机,单片机毕业论文范文
  9. 字母’x’在CSS世界中的角色和故事
  10. 【攻略】舰これ辅助程式介绍-航海日志
  11. 动态规划——状态转移方程
  12. 如何修改显示Office图标而不是wps图标
  13. Roaring Bitmaps结构原理
  14. php ipa下载 解码,ipa下载的方法
  15. 微信绑定银行卡消息服务器,微信绑定了银行卡,如果不注意这个消息,可能会出现自动扣费...
  16. 求助:Appium 如何实现登录手机淘宝时拖动苹果到购物车的验证
  17. 基于Java的文本相似度计算
  18. 消息队列MQ常见面试题
  19. 移动端使用fiddler抓包步骤
  20. gsoc 任务_我在GSoC'20中进行编码的第三周

热门文章

  1. Deepin(1) Hyper-V安装Deepin系统教程
  2. 精讲Spring得IOC和AOP
  3. 计算智能——模糊控制Matlab实现
  4. 【高德地图API】从零开始学高德JS API(六)——坐标转换
  5. Linux FrameBuffer分析之编写基于FrameBuffer接口的应用程序
  6. FLV文件格式分析(附源码)
  7. 可转位刀片的型号表示
  8. 2012年12月读书计划
  9. windows便签快捷键_Win10系统下粘滞便笺键盘快捷键大全
  10. 射频layout设计笔记