Java 中LinkedList 总结

 

406.根据身高重建队列

力扣题目链接(opens new window)

假设有打乱顺序的一群人站成一个队列,数组 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]] 是重新构造后的队列。
 Arrays.asList(people).sort(new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {if(o1[0] == o2[0]){return o1[1] - o2[1];}else{return o2[0]  - o1[0];}}});LinkedList<int[]> queue = new LinkedList<>();for(int [] p:people){queue.add(p[1], p);}int [][] result = queue.toArray(new int [people.length][2]);return result;

这道题的核心是先按照位置排序,位置相同按照身高逆序,为啥逆序,因为这个add 方法特殊如果存在,他会向前插入。

Java 的LinkedList  是个双端队列

public class LinkedList<E>extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, java.io.Serializable

Deque 接口就是队列接口

public boolean offer(E e) {return add(e);
}
public boolean offerFirst(E e) {addFirst(e);return true;
}
public boolean offerLast(E e) {addLast(e);return true;
}public boolean offer(E e) {return add(e);
}
public boolean offerFirst(E e) {addFirst(e);return true;
}
public boolean offerLast(E e) {addLast(e);return true;
}

LinedList Stack 接口

public void push(E e) {addFirst(e);}public E pop() {return removeFirst();}

AbstractSequentialList   这个就是顺序表, add  get  set 方法

    public boolean removeFirstOccurrence(Object o) {return remove(o);}public boolean removeLastOccurrence(Object o) {if (o == null) {for (Node<E> x = last; x != null; x = x.prev) {if (x.item == null) {unlink(x);return true;}}} else {for (Node<E> x = last; x != null; x = x.prev) {if (o.equals(x.item)) {unlink(x);return true;}}}return false;}public void add(int index, E element) {checkPositionIndex(index);if (index == size)linkLast(element);elselinkBefore(element, node(index));}

这个add 方法指定下标的情况下,如果这个位置存在元素他会向前插入,如果不存在元素他直接插入。

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

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

相关文章

大模型微调:从零到实践,掌握AI大模型的核心技能

大模型微调&#xff1a;从零到实践&#xff0c;掌握AI大模型的核心技能 引言 大规模语言模型&#xff08;如DeepSeek、通义千问&#xff09;的出现&#xff0c;彻底改变了自然语言处理的格局。这些模型不仅在学术界取得了突破性进展&#xff0c;在工业界也得到了广泛应用。 …

Flutter - 原生交互 - 相册

环境 Flutter 3.29 macOS Sequoia 15.4.1 Xcode 16.3 iOS 13.4.1 iOS 18.5 集成image_picker 在Flutter中可以使用image_picker插件实现从相册中获取图片 添加插件 flutter中访问相册image_picker插件 flutter pub add image_pickerflutter pub getXcode工程的GenerateP…

node.js在vscode的配置

文章目录 概要1. 使用和webstrom一样的快捷键2. 让vscode的主题变成webstrom3. 如何在 Node.js 环境下写代码3.1 使用 ESLint配置规则3.2 配置.vscode/settings.json 4. Prettier安装5. 其它问题解决 概要 node.js在webstrom编辑器中可以完美使用代码提示、错误提示等功能&…

Android14音频子系统-Audio HAL分析

文章目录 1&#xff09;概述2&#xff09;HAL的打开流程3&#xff09;HAL库的实现(Qualcomm)4&#xff09;tinyalsa5&#xff09;数据结构6&#xff09;代码流程 1&#xff09;概述 1、回顾HAL、tinyalsa与linux driver的关系 2、与AudioFlinger的关系 3、 1、如何判断当前…

前端与 Spring Boot 后端无感 Token 刷新 - 从原理到全栈实践

&#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Micro麦可乐的博客 &#x1f425;《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程&#xff0c;入门到实战 &#x1f33a;《RabbitMQ》…

【AI智能体】新手教程-通过 Chat SDK 搭建网页在线客服

通过扣子搭建的智能体可以一键发布为 Chat SDK&#xff0c;快速部署到你的自建网站中&#xff0c;作为在线智能客服面向网站的用户提供 AI 答疑服务。本文档介绍通过 Chat SDK 搭建网页版在线客服的详细操作步骤。 场景说明 网站作为企业和组织与用户互动的重要平台&#xff…

flask静态资源与模板页面、模板用户登录案例

案例代码 import flask# template_folder 模板文件夹(静态页面 html页面渲染) # static_folder 静态资源文件夹主要存放的是类似静态数据、音频、视频、图片等 app flask.Flask(__name__, static_folderstatic, template_foldertemplate)app.route(/) def index():# render_t…

【工具教程】识别PDF中文字内容,批量识别文字并保存到Excel表格中的操作步骤和方法

在日常办公和文件管理中&#xff0c;我们常常会遇到需要处理大量 PDF 文件的情况。有时&#xff0c;为了更好地管理和查找这些文件&#xff0c;需要根据 PDF 文件中特定区域的文字内容对文件进行重命名。例如&#xff0c;在企业档案管理中&#xff0c;合同文件可能需要根据合同…

重生学AI第十三集:初识神经网络之Conv2d

终于该学习神经网络的搭建了&#xff0c;开心&#xff0c;嘻嘻 学习神经网络离不开torch.nn&#xff0c;先把他印在脑子里&#xff0c;什么是torch.nn?他是Pytorch的一个模块&#xff0c;包含了大量构建神经网络需要的类和方法&#xff0c;就像前面学习的torch.utils&#xf…

学习C++、QT---07(C++的权限、C++的引用)

每日一言 你解决的每一个难题&#xff0c;都是在为未来的自己解锁新技能。 权限的讲解 这边呢我们利用银行的一个案例来讲解权限的奥秘 权限指的是public、private 、protected 就是这三种权限&#xff0c;因此有这一张表进行分清他们之间的区别和联系 但是我们在平时的话会因…

全球化短剧平台全栈技术架构白皮书:多区域部署、智能分发与沉浸式体验的完整解决方案

一、全球化基础架构深度设计 全球网络基础设施构建 采用多活数据中心部署模式&#xff0c;在北美&#xff08;弗吉尼亚&#xff09;、欧洲&#xff08;法兰克福&#xff09;、亚太&#xff08;新加坡&#xff09;建立三大核心枢纽节点 构建混合CDN网络&#xff0c;整合AWS Clo…

深入剖析 LGM—— 开启高分辨率 3D 内容创作新时代

一、引言 在当今数字化时代&#xff0c;3D 内容创作的需求如井喷般增长&#xff0c;从游戏开发中绚丽多彩的虚拟世界&#xff0c;到影视制作里震撼人心的特效场景&#xff0c;再到工业设计中精准无误的产品原型&#xff0c;3D 技术无处不在。然而&#xff0c;传统 3D 内容创作…

从用户到社区Committer:小米工程师隋亮亮的Apache Fory成长之路

Apache Fory 是一个基于JIT和零拷贝的高性能多语言序列化框架&#xff0c;实现了高效紧凑的序列化协议&#xff0c;提供极致的性能、压缩率和易用性。在多语言序列化框架技术领域取得了重大突破&#xff0c;推动序列化技术步入高性能易用新篇章&#xff01;这一切&#xff0c;都…

【Koa系列】10min快速入门Koa

简介 koa是基于node开发的一个服务端框架&#xff0c;功能同express&#xff0c;但更小巧简单。 官方仓库地址&#xff1a;https://github.com/koajs/koa 创建项目 创建文件夹nodeKoa&#xff0c;执行以下脚本 npm init -y npm i koa npm i nodemon 基础示例 创建一个服…

IDEA与通义联合:智能编程效率革命

IDEA与通义联合&#xff1a;智能编程效率革命 当最强Java IDE遇上顶尖AI助手&#xff0c;会碰撞出怎样的生产力火花&#xff1f; 思维导图解读&#xff1a;智能编程工作流 #mermaid-svg-uTAcSs1kBBmDwGfM {font-family:"trebuchet ms",verdana,arial,sans-serif;font…

Docker 数据持久化完全指南:Volume、Bind Mount 与匿名卷

Docker 数据持久化完全指南&#xff1a;Volume、Bind Mount 与匿名卷 引言 在 Docker 中&#xff0c;容器的文件系统默认是临时的&#xff0c;容器删除后数据也会丢失。为了实现数据持久化&#xff0c;Docker 提供了多种存储方式&#xff0c;主要包括&#xff1a; docker vo…

OSS跨区域复制灾备方案:华东1到华南1的数据同步与故障切换演练

1. 引言 对象存储服务&#xff08;OSS&#xff09;已成为现代数据架构的核心组件。随着业务全球化&#xff0c;跨区域数据灾备从“可选”变为“必选”。本文以阿里云OSS为实验环境&#xff0c;实战演练华东1&#xff08;杭州&#xff09;到华南1&#xff08;深圳&#xff09;的…

前端登录状态管理:主流方案对比与安全实践指南

根据目前业内前端登录状态管理的主流设计方案&#xff0c;及其演进趋势进行汇总&#xff0c;生成主要包括如下内容的报告&#xff1a; 登录状态保持的基础原理&#xff1a;从HTTP无状态问题出发解析技术需求&#xff0c;使用表格对比核心挑战。主流技术方案对比&#xff1a;详…

动手用 Web 实现一个 2048 游戏

文章目录 为什么选择 2048&#xff1f;关键技术点与算法详解HTML 结构&#xff1a;搭建游戏界面CSS 样式&#xff1a;美化游戏界面JavaScript 核心逻辑&#xff1a;驱动游戏运行1&#xff09;数据结构&#xff1a;二维数组表示游戏网格2&#xff09;核心算法&#xff1a;添加随…

frp v0.62.1内网穿透搭建和使用

官网&#xff1a;https://gofrp.org/zh-cn/ Github&#xff1a;https://github.com/fatedier/frp 开源项目 frp frp 是一种快速反向代理&#xff0c;允许您将位于 NAT 或防火墙后面的本地服务器公开给 Internet。目前支持 TCP 和 UDP&#xff0c;以及 HTTP 和 HTTPS 协议&…