最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談單調隊列、單調棧

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

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

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

下面我會舉個簡單的列子來解釋單調隊列及單調棧。

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

根據(jù)題意,我們可以得出這樣一個結論,若后一個數(shù)大于前一個數(shù),則結果必定不會是前一個數(shù)(比如現(xiàn)在輸入了1,5,由于1<5,所以無論是后幾個數(shù)中的最大值均不會為1),因此,我們只需維護一個單調遞減的數(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。)

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

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

相關文章

  • C++內存分布及用法

    C++內存分布及用法

    這篇文章主要介紹了C++內存分布及用法,從內存的基礎概念到內存分配進行了講解,內存是我們開發(fā)中最重要的一部分,往往邏輯上的錯誤就會造成內存泄漏,導致程序無法運行,下面我們就來了解文章對該內容的詳細介紹
    2021-12-12
  • C/C++函數(shù)調用棧的實現(xiàn)方法

    C/C++函數(shù)調用棧的實現(xiàn)方法

    這篇文章主要介紹了C/C++函數(shù)調用棧的實現(xiàn)方法,可實現(xiàn)一個簡單的腳本解釋器,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • C++之值傳遞&指針傳遞&引用傳遞的示例詳解

    C++之值傳遞&指針傳遞&引用傳遞的示例詳解

    這篇文章主要為大家詳細介紹了C++中值傳遞、指針傳遞和引用傳遞的定義與使用,文中的示例代碼講解詳細,對我們學習C++有一定幫助,需要的可以參考一下
    2022-10-10
  • C語言詳細解析有符號數(shù)與無符號數(shù)的表示

    C語言詳細解析有符號數(shù)與無符號數(shù)的表示

    我們知道,在C語言中存在無符號數(shù)和有符號數(shù),但是對于計算機而言,其本身并不區(qū)別有符號數(shù)和無符號數(shù),因為在計算機里面都是O或者1,但是在我們的實際使用中有時候需要使用有符號數(shù)來表示一個整數(shù),因此我們規(guī)定,當最高位為1的時,表示為負數(shù),最高位為0時,表示為正數(shù)
    2022-04-04
  • C++ 頭文件系列(set)詳解

    C++ 頭文件系列(set)詳解

    一般而言,每個C++/C程序通常由頭文件和定義文件組成。頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件,主要用于保存程序的聲明,而定義文件用于保存程序的實現(xiàn) 。
    2017-02-02
  • C++野指針和懸空指針的實現(xiàn)方法

    C++野指針和懸空指針的實現(xiàn)方法

    野指針和懸空指針是指針中常見的兩個概念,本文詳細的介紹了這兩種的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++中using的三種用法舉例詳解

    C++中using的三種用法舉例詳解

    最近在使用中,發(fā)現(xiàn)了一種以前沒學過的using用法,于是在這里,將using的幾種用法總結一下,下面這篇文章主要給大家介紹了關于C++中using的三種用法,需要的朋友可以參考下
    2023-02-02
  • C++STL之vector模板類詳解

    C++STL之vector模板類詳解

    這篇文章主要為大家詳細介紹了C++vector模板類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++標準模板庫函數(shù)sort的那些事兒

    C++標準模板庫函數(shù)sort的那些事兒

    sort函數(shù)是標準模板庫的函數(shù),已知開始和結束的地址即可進行排序,可以用于比較任何容器(必須滿足隨機迭代器),任何元素,任何條件,執(zhí)行速度一般比qsort要快
    2013-09-09
  • C++實例分析組合數(shù)的計算與排列組合的產(chǎn)生

    C++實例分析組合數(shù)的計算與排列組合的產(chǎn)生

    這篇文章主要介紹了C++組合數(shù)的計算與排列和組合無重集元素的產(chǎn)生,對計算算法感興趣的同學,可以參考一下,理解其原理,并且試驗一下。
    2022-07-07

最新評論

杭锦后旗| 青海省| 台北县| 临夏县| 吉林市| 绥棱县| 梨树县| 扎赉特旗| 开封县| 田林县| 明水县| 淮安市| 安陆市| 松滋市| 东明县| 武邑县| 龙里县| 临沭县| 榆社县| 邢台县| 珠海市| 安泽县| 苍溪县| 仁化县| 伊金霍洛旗| 通海县| 遂昌县| 纳雍县| 正蓝旗| 西林县| 甘谷县| 漳州市| 明星| 祁门县| 林周县| 诏安县| 谷城县| 高陵县| 柳林县| 大田县| 通山县|