代碼隨想錄第五十五天打卡

42. 接雨水

接雨水這道題目是 面試中特別高頻的一道題,也是單調棧 應用的題目,大家好好做做。

建議是掌握 雙指針 和單調棧,因為在面試中 寫出單調棧可能 有點難度,但雙指針思路更直接一些。

在時間緊張的情況有,能寫出雙指針法也是不錯的,然后可以和面試官在慢慢討論如何優化。

代碼隨想錄

class Solution {
public:int trap(vector<int>& height) {stack<int>st;int res=0;for (int i=0;i<height.size();i++){if (st.empty() || height[st.top()]>height[i])st.push(i);else{while(!st.empty() && height[st.top()]<height[i]){int mid=st.top();st.pop();if (!st.empty())res+=(i-st.top()-1)*(min(height[st.top()],height[i])-height[mid]);}st.push(i);}}return res;}
};

總結

把左邊最大和右邊最大就是要求面積的思路理清楚了其實后面實現就不難了。

84.? 柱狀圖中最大的矩形

有了之前單調棧的鋪墊,這道題目就不難了。

ongjiez代碼隨想錄

class Solution {
public:int largestRectangleArea(vector<int>& heights) {stack<int>st;heights.insert(heights.begin(), 0); // 數組頭部加入元素0heights.push_back(0); // 數組尾部加入元素0st.push(0);int res=0;for (int i=1;i<heights.size();i++){if (st.empty() || heights[st.top()]<heights[i])st.push(i);else{while (!st.empty() && heights[st.top()]>heights[i]){int mid=st.top();st.pop();if (!st.empty())res=max(res,heights[mid]*(i-st.top()-1));else res=max(res,heights[mid]*i);}st.push(i);}}return res;}
};

總結

我還在想怎么把棧剩余的元素給算上,原來在后面加上個0就可以了。

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

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

相關文章

Unity中一鍵生成具有身體感知的虛擬人物動作

在虛擬現實(VR)和增強現實(AR)的浪潮中&#xff0c;如何讓虛擬人物的動作更加自然、真實&#xff0c;已經成為一個重要課題。AI4Animation項目&#xff0c;一個由 Sebastian Starke 主導的開源框架&#xff0c;為Unity開發者提供了強大的工具集&#xff0c;以實現這一目標。本文…

OrangePi AIpro在安防領域的深思和實戰(曠視科技CNN模型ShuffleNetV1開發案例測試)

一、前言 公司最近有個項目是安防領域的&#xff0c;主要用在邊緣結點&#xff0c;雖然已做成形&#xff0c;但是還是存在一些缺陷&#xff0c;例如&#xff1a;算力問題&#xff0c;開發板的成熟問題&#xff0c;已經各種技術的解決方案落地問題。目前我們集成了很多功能&…

Facebook 開源計算機視覺 (CV) 和 增強現實 (AR) 框架 Ocean

Ocean 是一個獨立于平臺的框架&#xff0c;支持所有主要操作系統&#xff0c;包括 iOS、Android、Quest、macOS、Windows 和 Linux。它旨在徹底改變計算機視覺和混合現實應用程序的開發。 Ocean 主要使用 C 編寫&#xff0c;包括計算機視覺、幾何、媒體處理、網絡和渲染&#x…

python中的pickle模塊和json模塊

目錄 pickle: Python 中的pickle 是一個內置模塊&#xff0c;用于序列化和反序列化 Python 對象結構。序列化是將對象轉換成字節流的過程&#xff0c;這樣對象就可以被存儲到文件中或者通過網絡傳輸。反序列化則是將這些字節流重新轉換成原始對象的過程。 json: json模塊是 …

實現多層感知機

目錄 多層感知機&#xff1a; 介紹&#xff1a; 代碼實現&#xff1a; 運行結果&#xff1a; 問題答疑&#xff1a; 線性變換與非線性變換 參數含義 為什么清除梯度&#xff1f; 反向傳播的作用 為什么更新權重&#xff1f; 多層感知機&#xff1a; 介紹&#xff1a;…

taocms 3.0.1 本地文件泄露漏洞(CVE-2021-44983)

前言 CVE-2021-44983 是一個影響 taoCMS 3.0.1 的遠程代碼執行&#xff08;RCE&#xff09;漏洞。該漏洞允許攻擊者通過上傳惡意文件并在服務器上執行任意代碼來利用這一安全缺陷。 漏洞描述 taoCMS 是一個內容管理系統&#xff08;CMS&#xff09;&#xff0c;用于創建和管…

持續集成的自動化之旅:Gradle在CI中的配置秘籍

持續集成的自動化之旅&#xff1a;Gradle在CI中的配置秘籍 引言 持續集成&#xff08;Continuous Integration, CI&#xff09;是現代軟件開發中的一項基礎實踐&#xff0c;它通過自動化的構建和測試流程來提高軟件質量和開發效率。Gradle作為一個靈活的構建工具&#xff0c;…

【眼疾病識別】圖像識別+深度學習技術+人工智能+卷積神經網絡算法+計算機課設+Python+TensorFlow

一、項目介紹 眼疾識別系統&#xff0c;使用Python作為主要編程語言進行開發&#xff0c;基于深度學習等技術使用TensorFlow搭建ResNet50卷積神經網絡算法&#xff0c;通過對眼疾圖片4種數據集進行訓練&#xff08;‘白內障’, ‘糖尿病性視網膜病變’, ‘青光眼’, ‘正常’&…

jenkins系列-05-jenkins構建golang程序

下載go1.20.2.linux-arm64.tar.gz 并存放到jenkins home目錄&#xff1a; 寫一個golang demo程序&#xff1a;靜態文件服務器&#xff1a;https://gitee.com/jelex/jenkins_golang package mainimport ("encoding/base64""flag""fmt""lo…

window下安裝go環境

一、go官網下載安裝包 官網地址如下&#xff1a;https://golang.google.cn/dl/ 選擇對應系統的安裝包&#xff0c;這里是window系統&#xff0c;可以選擇zip包&#xff0c;下載完解壓就可以使用 二、配置環境變量 這里的截圖配置以win11為例 我的文件解壓目錄是 D:\Software…

力扣32.最長有效括號

力扣32.最長有效括號 class Solution {public:int longestValidParentheses(string s) {int n s.size();int res0;int start -1;vector<int> st;for(int i0;i<n;i){if(s[i] ()st.push_back(i);else{//前面沒有( , (開啟下一段)下一段的開始更新為當前下標if(st.emp…

機器學習和人工智能在農業的應用——案例分析

作者主頁: 知孤云出岫 目錄 引言機器學習和人工智能在農業的應用1. 精準農業作物健康監測土壤分析 2. 作物產量預測3. 農業機器人自動化播種和收割智能灌溉 4. 農業市場分析價格預測需求預測 機器學習和人工智能帶來的變革1. 提高生產效率2. 降低生產成本3. 提升作物產量和質量…

Elsaticsearch java基本操作

索引 基本操作 package com.orchids.elasticsearch.web.controller;import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.orchids.elasticsearch.web.po.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOpe…

探索JT808協議在車輛遠程視頻監控系統中的應用

一、部標JT808協議概述 隨著物聯網技術的迅猛發展&#xff0c;智能交通系統&#xff08;ITS&#xff09;已成為現代交通領域的重要組成部分。其中&#xff0c;車輛遠程監控與管理技術作為ITS的核心技術之一&#xff0c;對于提升交通管理效率、保障道路安全具有重要意義。 JT8…

TensorBoard ,PIL 和 OpenCV 在深度學習中的應用

重要工具介紹 TensorBoard&#xff1a; 是一個TensorFlow提供的強大工具&#xff0c;用于可視化和理解深度學習模型的訓練過程和結果。下面我將介紹TensorBoard的相關知識和使用方法。 TensorBoard 簡介 TensorBoard是TensorFlow提供的一個可視化工具&#xff0c;用于&#x…

尚品匯-(十七)

目錄&#xff1a; &#xff08;1&#xff09;獲取價格信息 &#xff08;2&#xff09;獲取銷售信息 前面的表&#xff1a; &#xff08;1&#xff09;獲取價格信息 繼續編寫接口&#xff1a;ManagerService /*** 獲取sku價格* param skuId* return*/ BigDecimal getSkuPrice…

『 Linux 』匿名管道應用 - 簡易進程池

文章目錄 池化技術進程池框架及基本思路進程的描述組織管道通信建立的潛在問題 任務的描述與組織子進程讀取管道信息控制子進程進程退出及資源回收 池化技術 池化技術是一種編程技巧,一般用于優化資源的分配與復用; 當一種資源需要被使用時這意味著這個資源可能會被進行多次使…

mqtt.fx連接阿里云

本文主要是記述一下如何使用mqtt.fx連接在阿里云上創建好的MQTT服務。 1 根據MQTT填寫對應端口即可 找到設備信息&#xff0c;里面有MQTT連接參數 2 使用物模型通信Topic&#xff0c;注意這里的post說設備上報&#xff0c;那也就是意味著云端訂閱post&#xff1b;set則意味著設…

【輕松拿捏】Java-final關鍵字(面試)

目錄 1. 定義和基本用法 回答要點&#xff1a; 示例回答&#xff1a; 2. final 變量 回答要點&#xff1a; 示例回答&#xff1a; 3. final 方法 回答要點&#xff1a; 示例回答&#xff1a; 4. final 類 回答要點&#xff1a; 示例回答&#xff1a; 5. final 關鍵…

搭建hadoop+spark完全分布式集群環境

目錄 一、集群規劃 二、更改主機名 三、建立主機名和ip的映射 四、關閉防火墻(master,slave1,slave2) 五、配置ssh免密碼登錄 六、安裝JDK 七、hadoop之hdfs安裝與配置 1)解壓Hadoop 2)修改hadoop-env.sh 3)修改 core-site.xml 4)修改hdfs-site.xml 5) 修改s…