數據結構與算法:python棧和隊列的用法

python的棧和隊列其實都算作一個數組,棧從最后一個元素開始推出,隊列從第一個元素開始推出

# pop(0)刪除時間復雜度O(n)
s = [] #棧
q = [] #隊列
s.append(1)#1入棧
q.append(1)#1入隊
s.pop()#出棧
q.pop(0)#出隊

由于從第一個元素刪除需要挪動數組,所以可以采用雙向鏈表代替,時間復雜度大大降低

# 時間復雜度較低的方法,這是一個雙向鏈表,可做棧和隊列
# 前后插入刪除的時間復雜度為O(1)
s = collections.deque()
a.append(1)  #入棧或入隊
s.popleft()  #出隊
s.popright() #出棧

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

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

相關文章

【EI會議征稿】2024年粵港澳大灣區數字經濟與人工智能國際學術會議(DEAI2024)

2024年粵港澳大灣區數字經濟與人工智能國際學術會議(DEAI2024) 2024 Guangdong-Hong Kong-Macao Greater Bay Area International Conference on Digital Economy and Artificial Intelligence(DEAI2024) 2024年粵港澳大灣區數字經濟與人工智能國際學術會議(DEAI2024)由廣東科…

探索鴻蒙 TextInput組件

TextInput 根據組件名字,可以得知他是一個文本輸出框。 聲明代碼👇 TextInput({placeholder?:ResourceStr,text?:ResourceStr}); placeholder: 就是提示文本,跟網頁開發中的placeholder一樣的 text:輸入框當前的文本內容 特殊屬…

ChatGPT的進化史

真正的人工智能可以變現的完全與人類一樣思考時,世界會發生什么變化? ChatGPT就如它的名字一樣,人類創造它最初的目的只是一個聊天機器人。聊天嘛,只要你和他對話時他的回答像人類一樣自然就行了,看起來并沒什么了不起…

Linux服務器磁盤占用過高解決思路

服務器在運行時,經常出現磁盤占用過高,可能有如下原因: 1、是否有產生過大的日志文件,或者大文件中的log過大,導致磁盤占用過高; 2、查看磁盤占用情況,分析哪個目錄中文件占比最大; …

貝蒂的搗蛋小游戲~(C語言)

引言: 前面貝蒂已經給大家介紹了選擇,循環結構~,今天貝蒂就基于這兩種結構,為大家講解一種搗蛋小游戲的設計思路和方法哦。 1.游戲要求 游戲要求: 1. 電腦?動?成1~100的隨機數 2. 玩家猜數字,猜數字的過…

52 代碼審計-PHP項目類RCE及文件包含下載刪除

目錄 漏洞關鍵字:演示案例:xhcms-無框架-文件包含跨站-搜索或應用-includeearmusic-無框架-文件下載-搜索或應用功能-down等zzzcms-無框架-文件刪除RCE-搜索或應用-unlink、eval 漏洞關鍵字: SQL注入: select insert update mysql_query mysql等 文件上傳&#xff…

【FreeRTOS】信號量——簡介、常用API函數、注意事項、項目實現

在FreeRTOS中,信號量是一種非常重要的同步機制,用于實現任務間的互斥訪問和同步操作。通過信號量,不同的任務可以安全地共享資源,避免競爭和沖突,從而確保系統的穩定性和可靠性。本篇博客將介紹FreeRTOS中信號量的基本…

常用Nmap腳本

端口掃描類腳本 Nmap是一款非常流行的端口掃描工具,它可以幫助滲透測試工程師識別目標網絡上開放的端口,并提供有關這些端口的詳細信息。Nmap還提供了一系列基于腳本的功能,這些腳本可以擴展Nmap的功能,使其能夠更深入地探測目標網…

使用Huggingface創建大語言模型RLHF訓練流程的完整教程

ChatGPT已經成為家喻戶曉的名字,而大語言模型在ChatGPT刺激下也得到了快速發展,這使得我們可以基于這些技術來改進我們的業務。 但是大語言模型像所有機器/深度學習模型一樣,從數據中學習。因此也會有garbage in garbage out的規則。也就是說…

AUTOSAR CP Int-Watchdog簡介

Int Watchdog 1 簡介2 EB 中配置 TC39X3 Wdg 在代碼中使用1 簡介 內部看門狗驅動[sws_Wdg_00161]要訪問內部看門狗硬件,對應的 Wdg 模塊實例應該直接訪問看門狗服務的硬件。提示:內部看門狗驅動程序是微控制器抽象層的一部分,它允許直接的硬件訪問。注意:內部看門狗的日常服…

第21章總結 網絡通信

21.1 網絡程序設計基礎 網絡程序設計編寫的是與其他計算機進行通信的程序。Java已經將網絡程序所需要的元素封裝成不同的類,用戶只要創建這些類的對象,使用相應的方法,即使不具備有關的網絡知識,也可以編寫出高質量的網絡通信程序…

【評測腳本】機器信息評測(初版)

背景 QA的實際工作過程中,除了業務相關的測試外,也會涉及到一些評測相關的工作,甚至還要做多版本、多維度的評估分析。尤其是現在火熱的大模型,相關的評測內容更是核心中的核心。當然本文的內容只是做一些初級的機器相關的評測信息,更多更廣的評測需要更多時間的積累和總…

JVM的內存結構詳解「重點篇」

一、JVM虛擬機數據區 虛擬機棧 1、 線程私有 2、 每個方法被執行的時候都會創建一個棧幀用于存儲局部變量表,操作棧,動態鏈接,方法出口等信息。每一個方法被調用的過程就對應一個棧幀在虛擬機棧中從入棧到出棧的過程。 3、棧幀: 是用來存儲…

安裝mysql數據庫

1.1下載APT存儲庫(下載鏈接) 1.2安裝APT存儲庫(注意好正確的路徑) 將下載的文件傳輸到linux服務器對應目錄下后執行以下命令: sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb 選擇mysql5.7 然后點擊ok 然后執行 s…

應用架構——集群、分布式、微服務的概念及異同

一、什么是集群? 集群是指將多臺服務器集中在一起, 每臺服務器都實現相同的業務,做相同的事;但是每臺服務器并不是缺 一不可,存在的主要作用是緩解并發能力和單點故障轉移問題。 集群主要具有以下特征: …

JAVA使用POI向doc加入圖片

JAVA使用POI向doc加入圖片 前言 剛來一個需求需要導出一個word文檔,文檔內是系統某個界面的各種數據圖表,以圖片的方式插入后導出。一番查閱資料于是乎著手開始編寫簡化demo,有關參考poi的文檔查閱 Apache POI Word(docx) 入門示例教程 網上大多數是XXX…

el-table-column 添加 class類

正常添加class 發現沒有效果 class"customClass" 發現并沒有添加上去 看了一下官網發現 class-name 可以實現 第一步: :class-name"customClass" 第二步 : customClass: custom-column-class, 然后就發現可以了

Qt簡介、工程文件分離、創建Qt工程、Qt的幫助文檔

QT 簡介 core:核心模塊,非圖形的接口類,為其它模塊提供支持 gui:圖形用戶接口,qt5之前 widgets:圖形界面相關的類模塊 qt5之后的 database:數據庫模塊 network:網絡模塊 QT 特性 開…

IntelliJ IDEA使用Eval Reset

文章目錄 IntelliJ IDEA使用Eval Reset說明具體操作 IntelliJ IDEA使用Eval Reset 說明 操作系統:windows10 版本:2020.1 IntelliJ IDEA安裝可查看:安裝教程 具體操作 添加,輸入網址 https://plugins.zhile.io然后搜索“IDE E…

IntelliJ IDEA安裝

文章目錄 IntelliJ IDEA安裝說明下載執行安裝 IntelliJ IDEA安裝 說明 操作系統:windows10 版本:2020.1 下載 官網地址 執行安裝