830. 單調棧

??????

??????830. 單調棧 - AcWing題庫

給定一個長度為?N?的整數數列,輸出每個數左邊第一個比它小的數,如果不存在則輸出??1?1。

輸入格式

第一行包含整數?N,表示數列長度。

第二行包含?N個整數,表示整數數列。

輸出格式

共一行,包含?N?個整數,其中第?i個數表示第 i?個數的左邊第一個比它小的數,如果不存在則輸出??1?1。

數據范圍

1≤N≤1051≤≤105
1≤數列中元素≤1091≤數列中元素≤109

輸入樣例:
5
3 4 2 7 5
輸出樣例:
-1 3 -1 2 2

?

經典算法模板,單調棧,性質:找到左邊或右邊第一個大或小的數,通過模擬棧或者使用stl棧,保證棧中元素一直保持單調性,棧頂元素就是第一個比它小或大的元素

ac代碼

?

using namespace std;const int N = 100010;int stk[N], tt;int main()
{int n;cin >> n;while (n -- ){int x;scanf("%d", &x);while (tt && stk[tt] >= x) tt -- ;if (!tt) printf("-1 ");else printf("%d ", stk[tt]);stk[ ++ tt] = x;}return 0;
}

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

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

相關文章

你知道MySQL中 group by 怎么優化嗎

更好的閱讀體驗,請點擊 YinKai s Blog。 ? 在 MySQL 中 group by 用于按照一個或多個列對結果集進行分組。在討論 group by 怎么優化之前,我們先來看看 group by 的執行流程,這樣我們才能對癥下藥。 group by 執行流程 ? 我們先用下面的 …

Ubuntu 18.04使用Qemu和GDB搭建運行內核的環境

安裝busybox 參考博客: 使用GDBQEMU調試Linux內核環境搭建 一文教你如何使用GDBQemu調試Linux內核 ubuntu22.04搭建qemu環境測試內核 交叉編譯busybox 編譯busybox出現Library m is needed, can’t exclude it (yet)的解釋 S3C2440 制作最新busybox文件系統 https:…

block-recurrent-transformer-pytorch 學習筆記

目錄 有依賴項1: 沒有依賴項,沒有使用例子 沒有依賴項2: 有依賴項1: GitHub - dashstander/block-recurrent-transformer: Pytorch implementation of "Block Recurrent Transformers" (Hutchins & Schlag et a…

gd32和stm32的區別

gd32和stm32的區別 現在的市場上有很多種不同類型的微控制器,其中比較常見的有兩種,即gd32和stm32。兩種微控制器都是中國和歐洲的兩個公司分別推出的,但是它們之間有很多區別,本文將會深入探討這些區別。 1.起源和歷史 gd32是…

2024年網絡安全競賽-Web安全應用

Web安全應用 (一)拓撲圖 任務環境說明: 1.獲取PHP的版本號作為Flag值提交;(例如:5.2.14) 2.獲取MySQL數據庫的版本號作為Flag值提交;(例如:5.0.22) 3.獲取系統的內核版本號作為Flag值提交;(例如:2.6.18) 4.獲取網站后臺管理員admin用戶的密碼作為Flag值提交…

udp多播組播

import socket ,struct,time# 組播地址和端口號 MCAST_GRP 239.0.0.1 MCAST_PORT 8888 # 創建UDP socket對象 sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) # 綁定socket對象到本地端口號 # sock.bind((MCAST_GRP, MCAST_PORT)) …

【4】PyQt輸入框

1. 單行文本輸入框 QLineEdit控件可以輸入單行文本 from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout from PyQt5.QtCore import * from PyQt5.QtGui import QIcon import sysdef init_widget(w: QWidget):# 修改窗口標題w.setWindowTitle(單行輸…

前端面試——CSS面經(持續更新)

1. CSS選擇器及其優先級 !important > 行內樣式 > id選擇器 > 類/偽類/屬性選擇器 > 標簽/偽元素選擇器 > 子/后臺選擇器 > *通配符 2. 重排和重繪是什么?瀏覽器的渲染機制是什么? 重排(回流):當增加或刪除dom節點&…

【面試經典150 | 二叉樹】從中序與后序遍歷序列構造二叉樹

文章目錄 寫在前面Tag題目來源題目解讀解題思路方法一:遞歸 寫在最后 寫在前面 本專欄專注于分析與講解【面試經典150】算法,兩到三天更新一篇文章,歡迎催更…… 專欄內容以分析題目為主,并附帶一些對于本題涉及到的數據結構等內容…

Android : Room 數據庫的基本用法 —簡單應用

1.Room介紹: Android Room 是 Android 官方提供的一個持久性庫,用于在 Android 應用程序中管理數據庫。它提供了一個簡單的 API 層,使得使用 SQLite 數據庫變得更加容易和方便。 以下是 Android Room 的主要特點: 對象關系映射…

9.MySQL 索引

目錄 ???????概述 概念: 單列索引 普通索引 創建索引 查看索引 刪除索引 唯一索引 創建唯一索引 刪除唯一索引 主鍵索引 組合索引 創建索引 全文索引 概述 使用全文索引 空間索引 內部原理 相關算法: hash算法 二叉樹算法 …

Spring基于XML文件配置AOP

AOP AOP,面向切面編程,是對面向對象編程OOP的升華。OOP是縱向對一個事物的抽象,一個對象包括靜態的屬性信息,包括動態的方法信息等。而AOP是橫向的對不同事物的抽象,屬性與屬性、方法與方法、對象與對象都可以組成一個…

12.10多種編碼方式,編碼方案選擇策略(遞歸級聯),PDE,RLE代碼

作者如何選擇和設計編碼方案,以實現高效的解壓縮和高壓縮比?BtrBlocks是否適用于所有類型的數據? 選擇和設計編碼方案: 結合多種高效編碼方案:BtrBlocks 通過選擇一組針對不同數據分布的高效編碼方案,實現…

js判斷是否對象自身為空

文章目錄 一、前言二、JSON.stringify三、for in 配合 hasOwnProperty四、Object.keys五、Object.getOwnPropertyNames六、Object.getOwnPropertyNames 結合 Object.getOwnPropertySymbols七、Reflect.ownKeys八、最后 一、前言 如何判斷一個對象為空? 先上結論&a…

MySql復習筆記03(小滴課堂) 事務,視圖,觸發器,存儲過程

mysql 必備核心知識之事務的詳細解析: 創建一個數據庫表: 添加數據并開啟事務。 添加數據并查詢。 登錄另一臺服務器發現查不到這個表中的數據。 這是因為事務開啟了,但是沒有提交,只是把數據存到了內存中,還沒有寫入…

以為回調函數是同步的(js的問題)

回調函數可以用來處理 JavaScript 的異步操作,但是選用 Promise、async/await 更好,因為多重回調函數會導致回調地獄。 回調函數不是**同步的**,它是延時操作執行完畢后會被調用的一個函數。 比如全局方法 "setTimeout" &#xf…

CString 的 Replace 函數

Replace 使用測試 CString mSectNameNew L"槽a*b*c*d";CString mSectNameNew2 L"Ca*b*c*d";CString mSectNameNew3 L"[a*b*c*d";mSectNameNew.Replace(_T("M"), _T("C")); // 不會替換mSectNameNew.Re…

JOSEF 沖擊繼電器 ZC-23A DC48V 柜內安裝,板前帶座

系列型號 ZC-23沖擊繼電器;ZC-23A沖擊繼電器; ZC-23B沖擊繼電器 一、用途 沖擊繼電器ZC-23A DC48V 柜內安裝板前帶座 (以下簡稱繼電器),廣泛用于直流操作的繼電器保護及自動控制回路中,作為集中控制信號元件。 二、主要技術參…

C#動態調用C++DLL中的函數

DLL中導出的函數 typedef void (*HQ_MSG_CALLBACK)(void *h, int nMsg, int nMsgType, int nReqNo, const char *szData, int nSize); void SetMsgFunc(void *h, HQ_MSG_CALLBACK pmsgCallBack);C#動態調用上述函數 public delegate void CALLBACK(IntPtr h, int nMsg, int n…