欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談單調(diào)隊列、單調(diào)棧

 更新時間:2015年07月06日 12:04:55   投稿:hebedich  
其實,單調(diào)隊列和單調(diào)棧是類似的,在我看來,這兩個東西只是名字不一樣 - - ! 比較容易想的一道題啦! 首先,這題的兩個關(guān)鍵點: 1、區(qū)間的和。這個簡單,地球人都知道! 2、區(qū)間的最小值。

初談這個話題,相信許多人會有一種似有所悟,但又不敢確定的感覺。沒錯,這正是因為其中“單調(diào)”一詞的存在,所謂單調(diào)是什么,學(xué)過函數(shù)的people都知道單調(diào)函數(shù)或者函數(shù)的單調(diào)性,直白一點說單調(diào)就是一直增或一直減。例如:1,3,5,9就是一個單調(diào)增數(shù)列,數(shù)列中不存在后一個數(shù)比前一個數(shù)小的現(xiàn)象。那么同樣,在這里談到的話題也有類似特點。

先說一下單調(diào)隊列吧!      單調(diào)隊列,就是一個符合單調(diào)性質(zhì)的隊列,它同時具有單調(diào)的性質(zhì)以及隊列的性質(zhì)。他在編程中使用頻率不高,但卻占有至關(guān)重要的地位。它的作用很簡單,就是為了維護一組單調(diào)數(shù)據(jù),讓我們在運行的過程中能夠快速尋求前k個或后k個中最大或最小的值。    至于單調(diào)棧,相信看完上面的敘述后,都會有一個大概的理解,單調(diào)棧就是一個符合單調(diào)性質(zhì)的棧它同時具有單調(diào)的性質(zhì)以及棧的性質(zhì)。在作用方面兩者是相同的,差別僅是在編程過程中所維護的數(shù)組的方式不同。

下面我會舉個簡單的列子來解釋單調(diào)隊列及單調(diào)棧。

例題:有一組數(shù)據(jù)1,5,9,4,7,8,6,他們會依此輸入,同時,在某一時刻會讓你求出后n個數(shù)中的最大值。                

根據(jù)題意,我們可以得出這樣一個結(jié)論,若后一個數(shù)大于前一個數(shù),則結(jié)果必定不會是前一個數(shù)(比如現(xiàn)在輸入了1,5,由于1<5,所以無論是后幾個數(shù)中的最大值均不會為1),因此,我們只需維護一個單調(diào)遞減的數(shù)組便可快速求得所需之。(數(shù)組變化如下:輸入——1,數(shù)組——1;輸入——5,由于5>1刪去1添入5,數(shù)組——5;輸入——9,由于9>5刪去5添入9,數(shù)組——9;輸入——4,由于4<9直接添入,數(shù)組——9,4;輸入——7,由于7>4同時7<9因此刪去4添入7,數(shù)組——9,7;輸入——8,由于8>4同時8<9因此刪去7添入8,數(shù)組——9,8;輸入——6,由于6<8直接添入,數(shù)組——9,8,6。)

單調(diào)隊列及單調(diào)棧的基礎(chǔ)也就這些,剩下的就只剩下個人理解及練習(xí)了。推薦幾道題,在大視野上的1012以及1047,其中1012比較裸適合初學(xué)者做,1047略有難度推薦做完1012后再做。(在這里給個提示,1047要用到兩次單調(diào)隊列、單調(diào)棧,橫著一次再用結(jié)果豎這一次。)

以上就是本文的全部內(nèi)容了,希望對你有所幫助。

相關(guān)文章

  • 軟件構(gòu)建工具makefile基礎(chǔ)講解

    軟件構(gòu)建工具makefile基礎(chǔ)講解

    這篇文章介紹了軟件構(gòu)建工具makefile,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 如何寫出優(yōu)美的C語言代碼

    如何寫出優(yōu)美的C語言代碼

    今天小編就為大家分享一篇關(guān)于如何寫出優(yōu)美的C語言代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 詳解C語言 三大循環(huán) 四大跳轉(zhuǎn) 和判斷語句

    詳解C語言 三大循環(huán) 四大跳轉(zhuǎn) 和判斷語句

    這篇文章主要介紹了詳解C語言 三大循環(huán) 四大跳轉(zhuǎn) 和判斷語句的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • C++中inline用法案例詳解

    C++中inline用法案例詳解

    這篇文章主要介紹了C++中inline用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • c語言設(shè)計模式之單例模式中的餓漢與懶漢詳解

    c語言設(shè)計模式之單例模式中的餓漢與懶漢詳解

    這篇文章主要介紹了c語言設(shè)計模式之單例模式中的餓漢與懶漢詳解,單例模式是指一個類只能創(chuàng)建一個對象,保證系統(tǒng)中該類只有一個實例,并提供一個可供訪問的全局訪問點,該實例被所有程序模塊共享,需要的朋友可以參考下
    2023-08-08
  • opencv4.5.4+VS2022開發(fā)環(huán)境搭建的實現(xiàn)

    opencv4.5.4+VS2022開發(fā)環(huán)境搭建的實現(xiàn)

    本文主要介紹了opencv4.5.4+VS2022開發(fā)環(huán)境搭建的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Win32應(yīng)用程序(SDK)設(shè)計原理詳解

    Win32應(yīng)用程序(SDK)設(shè)計原理詳解

    這篇文章主要介紹了Win32應(yīng)用程序(SDK)設(shè)計原理,對于理解win32應(yīng)用程序運行原理有很大的幫助,需要的朋友可以參考下
    2014-08-08
  • MATLAB全網(wǎng)最全的colormap的使用教程詳解

    MATLAB全網(wǎng)最全的colormap的使用教程詳解

    眾所周知,MATLAB中的colormap只有少得可憐的幾種,有很多應(yīng)用在很特殊的圖形中的colormap幾乎都沒有,而每次寫代碼都要去找顏色的圖屬實太麻煩。所以本文將包全部集成了進來,終于有了這套包含200個colormap的工具函數(shù),希望對大家有所幫助
    2023-02-02
  • 初識C++?Vector模板與實例化原理

    初識C++?Vector模板與實例化原理

    這篇文章主要為大家介紹了初識C++?Vector模板與實例化原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • c語言中assert斷言用法實例詳解

    c語言中assert斷言用法實例詳解

    斷言是C語言中一種用于檢查程序中假設(shè)語句正確性的方法,通過使用斷言,開發(fā)人員可以在程序中插入一些條件,以確保程序的執(zhí)行滿足特定的預(yù)期,這篇文章主要給大家介紹了關(guān)于c語言中assert斷言用法的相關(guān)資料,需要的朋友可以參考下
    2024-02-02

最新評論