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
英文地址,請注明出處:http://en.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 協議&…