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

LeetCode 根据身高重建队列题解

LeetCode 根据身高重建队列题解

题目描述

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

示例

输入: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]]

解题思路

方法:贪心

思路

  • 首先按照身高从高到低排序,如果身高相同,则按照 ki 从小到大排序。
  • 然后按照排序后的顺序,将每个人插入到结果队列的第 ki 个位置。

复杂度分析

  • 时间复杂度:O(n^2)。
  • 空间复杂度:O(n)。

代码实现

def reconstruct_queue(people): people.sort(key=lambda x: (-x[0], x[1])) result = [] for p in people: result.insert(p[1], p) return result # 测试 def test_reconstruct_queue(): people = [[7, 0], [4, 4], [7, 1], [5, 0], [6, 1], [5, 2]] print(reconstruct_queue(people)) # 输出:[[5, 0], [7, 0], [5, 2], [6, 1], [4, 4], [7, 1]] if __name__ == "__main__": test_reconstruct_queue()

总结

根据身高重建队列是贪心算法的典型应用,通过排序和插入操作来重建队列。

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

相关文章:

  • 2025-2026年北京老房改造装修公司推荐:五家口碑好的评测老房墙面开裂痛点注意事项 - 品牌推荐
  • 第85篇:Vibe Coding时代:LangGraph + 分布式锁实战,解决多个 Agent 同时修改同一仓库导致冲突的问题
  • 轻量级配置管理框架zcf:多环境配置、敏感信息加密与云原生集成实践
  • 如何在Mac上免费读写NTFS硬盘?Nigate开源工具帮你彻底解决
  • AI智能体记忆系统设计:从RAG到长期记忆的工程实践
  • LeetCode 单调递增的数字题解
  • 从零构建大语言模型:PyTorch实现Transformer核心组件与训练全流程
  • Kubernetes原生自动化部署工具Keel:实现容器镜像自动更新的最后一公里
  • 构建现代化爬虫管理平台:从架构设计到工程实践
  • 2026年5月北京二手房装修公司推荐:五家专业评测夜读案例防踩坑 - 品牌推荐
  • ChatGPT开源项目监控平台架构解析:从数据采集到智能展示
  • 如何选北京二手房装修公司?2026年5月推荐五家评测老房水电改造避隐患 - 品牌推荐
  • Go语言实现Hermes引擎:高性能JavaScript字节码虚拟机解析与实践
  • 基于Git的自动化文件同步工具clawsync:原理、配置与实战应用
  • AI智能体驱动的工作流引擎:构建下一代自动化系统的核心技术
  • Python数据聚合抓取工具:从配置化引擎到实战避坑指南
  • 【仅剩217份】《Midjourney后印象派风格白皮书》V2.3——含17位艺术家专属LoRA适配建议、32组跨文化色彩映射表及实时风格强度校准工具(2024.06内部封测版)
  • Vision Agent:基于LLM与视觉工具链的智能体框架实战解析
  • LeetCode 买卖股票最佳时机含手续费题解
  • 2026年5月北京老房改造装修公司推荐:五家排名评测夜读防眼干 - 品牌推荐
  • 设计令牌编排器:自动化打通设计与开发工作流
  • 基于ULN2803与微控制器的可编程霓虹灯牌设计与实现
  • 分布式系统核心模式实践:从Raft共识到键值存储构建
  • 企业级后端四层架构实战:从理论到代码的清晰落地
  • 项目八: 配置与管理FTP服务器(1) C1
  • 开源AI图像生成工具Dream-Creator:本地部署与Stable Diffusion实战指南
  • Flutter AI聊天界面开发:flutter_gpt_box组件库深度解析与实战
  • 为AI智能体构建长期记忆系统:从向量检索到个性化对话实践
  • 揭秘Midjourney“树胶重铬酸盐”风格指令:3步精准触发古典印相质感,92%用户从未用对的隐藏参数组合
  • OpenClaw信号处理库:模块化设计赋能嵌入式实时信号处理