当前位置: 首页 > news >正文

力扣406 根据身高重建队列 java实现

406.根据身高重建队列

假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个people[i] = [hi, ki]表示第i个人的身高为hi,前面正好ki个身高大于或等于hi的人。

请你重新构造并返回输入数组people所表示的队列。返回的队列应该格式化为数组queue,其中queue[j] = [hj, kj]是队列中第j个人的属性(queue[0]是排在队列前面的人)。

示例 1:

输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]解释:编号为 0 的人身高为 5 ,没有身高更高或者相同的人排在他前面。 编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。 编号为 2 的人身高为 5 ,有 2 个身高更高或者相同的人排在他前面,即编号为 0 和 1 的人。 编号为 3 的人身高为 6 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。 编号为 4 的人身高为 4 ,有 4 个身高更高或者相同的人排在他前面,即编号为 0、1、2、3 的人。 编号为 5 的人身高为 7 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。 因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。

示例 2:

输入:people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]输出:[[4,0],[5,0],[2,2],[3,2],[1,4],[6,0]]

提示:

  • 1 <= people.length <= 2000
  • 0 <= hi <= 106
  • 0 <= ki < people.length
  • 题目数据确保队列可以被重建

按照身高h来排序,从大到小排(身高相同的话则k小的站前面),让高个子在前面。前面的节点一定都比本节点高,那么只需要按照k为下标重新插入队列就可以了。

具体代码如下:

public static void main(String[] args) { // 测试用 int[][] nums = {}; int[][] res = reconstructQueue(nums); for (int[] ints : res) { System.out.println(Arrays.toString(ints)); } } public static int[][] reconstructQueue(int[][] people) { Arrays.sort(people,(a,b) ->{ if (a[0] == b[0]){ return a[1] - b[1]; } return b[0] - a[0]; }); List<int[]> list = new ArrayList<>(); for (int[] ints : people) { list.add(ints[1], ints); } return list.toArray(new int[people.length][]); }

以上为记录分享用,代码较差请见谅

http://www.jsqmd.com/news/172999/

相关文章:

  • 从“技术盆景”到“产业森林”:2025岁末的多智能体系统崛起与产业革命
  • 还在用DeepSeek写论文?这8款免费AI神器,查重率低于13%原创度高!
  • 2025 GEO(生成式引擎优化)行业全景报告:全场景时代下,企业如何选对技术合作伙伴?
  • 从“量表迁移”到“智能重构”:心理咨询行业的技术范式演进与央心心理的实践
  • 实战|香橙派+YOLOv8 低成本搞定田块分割:从环境搭建到边缘推理全流程
  • 拒绝干扰!
  • STM32项目分享:智能光伏发电系统
  • Flink 最近又“进化”了:状态后端与 Savepoint,真不是背概念那么简单
  • 西门子时间计数器
  • 实战|华为Atlas200 + YOLOv8 搞定田块分割:从环境搭建到推理全流程通关
  • 西宁不锈钢卫生管加工 高纯洁净
  • uniapp input组件实现聚焦
  • 低功耗蓝牙建立连接过程-详解
  • AI自动画界面?Google这个开源神器让前端工程师失业了
  • 一个 Bug,把 MIT 工程师从谷歌逼醒
  • 数据驱动未来:大数据价值实现的创新方法
  • 30分钟让AI学会“说人话“:保姆级模型微调教程,无需写代码
  • 电机控制中电阻采样方法大揭秘
  • AI-Rime V3——指尖AI
  • 低功耗蓝牙主机与从机四种数据交流方式
  • MySQL COALESCE 函数使用详解
  • AI Agent的多语言支持:跨语言理解与生成
  • 函数式编程:Lambda 表达式:Compose 的核心。比如 { onClick() },请直接给出一些练习事例出来
  • 基于SMO滑模观测器算法的永磁同步电机无传感器矢量控制
  • 什么是Agentic AI?通俗解释为什么企业都在做智能体
  • nim游戏原理
  • spring项目中业务逻辑涉及异步调用
  • Java CountDownLatch 代码示例:协调多个线程的执行顺序(比赛起跑)
  • 电气设备的发热量计算
  • 试过很多方法没用!怎么让孩子近视度数涨得慢些?