2025年- H36-Lc144 --739. 每日溫度(單調棧)--Java版

1.題目描述

在這里插入圖片描述

2.思路

(1)單調棧維護單調遞增或者單調遞減的數列
(2)因為要求找到當前元素 右邊區域,第一個比當前元素大的元素,所以取單調增數量。
(3)單調棧存儲元素的索引。如果遇到比當前遍歷元素小的元素(或者等于當前元素的元素)直接加入到棧中。否則,開始比較當前遍歷元素和棧頂元素的大小(要求當前遍歷元素大于棧頂元素)
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3.代碼實現

class Solution {public int[] dailyTemperatures(int[] temperatures){int n=temperatures.length;//1.創建一個結果數組,默認初值是0int[] res=new int[n];//2.創建一個單調棧,用鏈表的形式,方便刪除Deque<Integer> dq=new LinkedList<>();for(int i=0;i<n;i++){ //peekFirst() 雖然等價,但是雙端隊列專用術語,不如 peek() 直觀表達“棧頂”。while(!dq.isEmpty()&&temperatures[i]>temperatures[dq.peek()]){int sum=i- dq.peek();int k=dq.pop();//賦值給 dq.peek() 彈出之前保存的索引位置。res[k]=sum;}dq.push(i);// 當前索引入棧}return res;}
}

帶測試用例:

import java.util.Arrays;
import java.util.Deque;
import java.util.LinkedList;public class H739 {public int[] dailyTemperatures(int[] temperatures){int n=temperatures.length;//1.創建一個結果數組,默認初值是0int[] res=new int[n];//2.創建一個單調棧,用鏈表的形式,方便刪除Deque<Integer> dq=new LinkedList<>();for(int i=0;i<n;i++){ //peekFirst() 雖然等價,但是雙端隊列專用術語,不如 peek() 直觀表達“棧頂”。while(!dq.isEmpty()&&temperatures[i]>temperatures[dq.peek()]){int sum=i- dq.peek();int k=dq.pop();//賦值給 dq.peek() 彈出之前保存的索引位置。res[k]=sum;}dq.push(i);// 當前索引入棧}return res;}public static void main(String[] args){H739 test =new H739();int[] temperatures={73,74,75,71,69,72,76,73};int[] ans=test.dailyTemperatures(temperatures);System.out.println(Arrays.toString(ans));}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80745.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80745.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80745.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

架構選擇/區別

目錄 一、分層架構&#xff08;Layered Architecture&#xff09; 二、微服務架構&#xff08;Microservices Architecture&#xff09; 三、分布式架構&#xff08;Distributed Architecture&#xff09; 四、單體架構&#xff08;Monolithic Architecture&#xff09; 五…

Python----循環神經網絡(WordEmbedding詞嵌入)

一、編碼 當我們用數字來讓電腦“認識”字符或單詞時&#xff0c;最簡單的方法是為每個字符或單詞分配一個唯一的編號&#xff0c;然后用一個長長的向量來表示它。比如&#xff0c;假設“我”這個字在字典中的編號是第10個&#xff0c;那么它的表示就是一個很多0組成的向量&…

深入解析Spring Boot與微服務架構:從入門到實踐

深入解析Spring Boot與微服務架構&#xff1a;從入門到實踐 引言 隨著云計算和分布式系統的快速發展&#xff0c;微服務架構已成為現代軟件開發的主流模式。Spring Boot作為Java生態中最受歡迎的框架之一&#xff0c;為開發者提供了快速構建微服務的強大工具。本文將深入探討…

DeepSeek 賦能數字孿生:重構虛實共生的智能未來圖景

目錄 一、數字孿生技術概述1.1 數字孿生的概念1.2 技術原理剖析1.3 應用領域與價值 二、DeepSeek 技術解讀2.1 DeepSeek 的技術亮點2.2 與其他模型的對比優勢 三、DeepSeek 賦能數字孿生3.1 高精度建模助力3.2 實時數據處理與分析3.3 智能分析與預測 四、實際案例解析4.1 垃圾焚…

Amazon Q 從入門到精通 – 測試與重構

Amazon Q Developer 是亞馬遜推出的一個專為專業開發人員設計的人工智能助手&#xff0c;旨在提升代碼開發和管理效率。其主要功能包括代碼生成、調試、故障排除和安全漏洞掃描&#xff0c;提供一站式代碼服務。 眾所周知&#xff0c;在軟件開發領域&#xff0c;測試代碼是軟件…

專題五:floodfill算法(圖像渲染深度優先遍歷解析與實現)

以leetcode733題為例 題目解析&#xff1a; 給一個初始坐標&#xff08;sr&#xff0c;sc&#xff09;比如示例中的粉色的1&#xff0c;如果周圍上下左右都是1&#xff0c;就是連通塊&#xff08;性質相同的地方&#xff09;&#xff0c;把它涂上顏色&#xff08;2&#xff09…

在金融發展領域,嵌入式主板有什么優點?

在金融發展領域&#xff0c;嵌入式主板能夠有力推動金融行業的智能化與高效化進程。主板的強大計算能力可以保障業務高效運行。例如在銀行的高頻交易場景下&#xff0c;其強大計算能力可確保系統在高負荷下依然保持流暢穩定&#xff0c;快速響應用戶需求&#xff0c;大大提升金…

《Python星球日記》 第94天:走近自動化訓練平臺

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、自動化訓練平臺簡介1. Kubeflow Pipelines2. TensorFlow Extended (TFX)二、自動化訓練流程1. 數據預處理2. 模型訓練3. 評估與部署三、構建…

PHP、JAVA、Shiro反序列化

目錄 一、PHP反序列化 二、JAVA反序列化 三、Shiro反序列化 Shiro-550 反序列化漏洞原理 Shiro-721 反序列化漏洞原理 Padding Oracle 漏洞補充&#xff1a; 防御措施&#xff1a; 一、PHP反序列化 主要是分為有類和無類&#xff1a; 1、有類&#xff1a;就有相關的魔術…

AM32電調學習解讀六:main.c文件的函數介紹

最近在學習AM32電調的2.18版本的源碼&#xff0c;我用的硬件是AT32F421&#xff0c;整理了部分流程處理&#xff0c;內容的顆粒度是按自己的需要整理的&#xff0c;發出來給有需要的人參考。按自己的理解整理的&#xff0c;技術能力有限&#xff0c;可能理解有誤&#xff0c;歡…

WebSocket實時雙向通信:從基礎到實戰

一、WebSocket 基礎概念 1. 什么是 WebSocket&#xff1f; 雙向通信協議&#xff1a;與 HTTP 的單向請求不同&#xff0c;WebSocket 支持服務端和客戶端實時雙向通信。 低延遲&#xff1a;適用于聊天室、實時數據推送、在線游戲等場景。 協議標識&#xff1a;ws://&#xff…

【算法】分支限界法和貪心、動態規劃、回溯、分治法的區別是

什么是分支限界法 分支限界法是一種用于求解最優化問題的算法,其核心思想是通過剪枝策略減少搜索空間。 分支限界法常以廣度優先或以最小耗費(最大效益)優先的方式搜索問題的解空間樹。 在分支限界法中,每一個活結點只有一次機會成為擴展結點。活結點一旦成為擴展結點,就…

[自動化集成] 使用明道云上傳附件并在Python后端處理Excel的完整流程

在企業日常自動化場景中,使用低代碼平臺如明道云搭建前端界面,結合自定義Python后端服務,實現靈活數據處理是一種高效的組合方式。本文將分享一個典型的集成用例:用戶通過明道云上傳文本和Excel附件,Python后端接收并解析這些信息,最終實現完整的數據處理閉環。 項目背景…

ubuntu下實時檢測機械硬盤和固態硬盤溫度

sudo apt update sudo apt install smartmontools然后&#xff0c;使用smartctl命令查看硬盤的詳細信息&#xff0c;包括溫度&#xff1a; sudo smartctl -a /dev/sda實時監控硬盤溫度 雖然smartctl不能直接實時顯示溫度&#xff0c;你可以使用watch命令結合smartctl來定期查…

游戲開發實戰(二):Python復刻「崩壞星穹鐵道」嗷嗚嗷嗚事務所---源碼級解析該小游戲背后的算法與設計模式【純原創】

文章目錄 奇美拉和隊列奇美拉被動技能多對多觀察者關系實現自定義元類奇美拉基類 管理奇美拉的隊列奇美拉隊列類心得體會擴展 規則定義工作相關奇美拉相關 奇美拉屬性 在本篇博文&#xff0c;我將介紹本項目的整體框架&#xff0c;以及“編碼規則”&#xff0c;這些規則保證了本…

Redis實現分布式鎖的進階版:Redisson實戰指南

一、為什么選擇Redisson&#xff1f; 在上一篇文章中&#xff0c;我們通過Redis原生命令實現了分布式鎖。但在實際生產環境中&#xff0c;這樣的基礎方案存在三大痛點&#xff1a; 鎖續期難題&#xff1a;業務操作超時導致鎖提前釋放不可重入限制&#xff1a;同一線程無法重復…

大語言模型 12 - 從0開始訓練GPT 0.25B參數量 MiniMind2 補充 訓練開銷 訓練步驟 知識蒸餾 LoRA等

寫在前面 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是目前最廣泛應用的大語言模型架構之一&#xff0c;其強大的自然語言理解與生成能力背后&#xff0c;是一個龐大而精細的訓練流程。本文將從宏觀到微觀&#xff0c;系統講解GPT的訓練過程&#xff0c;…

SID 2025上的天馬,用“好屏”技術重構產業敘事

作為全球最具影響力的顯示行業盛會&#xff0c;SID國際顯示周不僅是技術比拼的舞臺&#xff0c;更是未來產業方向的風向標。SID 2025上的技術密度與產業動態&#xff0c;再一次驗證了這一定律。 Micro-LED、柔性OLED、裸眼3D、量子點、透明顯示等新技術在SID 2025集中亮相&…

【AI News | 20250520】每日AI進展

AI Repos 1、nanoDeepResearch nanoDeepResearch 是一個受 ByteDance 的 DeerFlow 項目啟發&#xff0c;旨在從零開始構建深度研究代理的后端項目。它不依賴 LangGraph 等現有框架&#xff0c;通過實現一個 ReAct 代理和狀態機來模擬 Deep Research 的工作流程。項目主要包含規…

釘釘開發之AI消息和卡片交互開發文檔收集

AI消息和卡片交互開發文檔 智能交互接口能力介紹 AI助理發消息&#xff08;主動直接發送模式 AI 助理發消息 - 主動發送模式 AI 助理發消息 - 回復消息模式 AI 助理發消息 - Webhook 回復消息模式 Stream 模式響應卡片回傳請求事件 upload-media-files AI 助理發消息&a…