單調佇列stl及手寫實現,附例題

2021-10-23 04:51:44 字數 1609 閱讀 5218

單調佇列:有單調性的佇列(單調遞增或遞減),相比普通佇列不同在於可以在隊尾進行pop操作

特點:可以快速取出最大值最小值(隊首元素)

嚴格單調序列:a1deque是雙端佇列,既有佇列的性質也有棧的性質。

deque物件建立:dequeque

deque的一些成員函式:

函式名功能

push_back()

隊尾入隊

push_front()

隊首入隊

pop_front()

隊首元素出隊

pop_back()

隊尾元素出隊

empty()

判斷佇列是否為空

front()

返回隊首元素

back()

返回隊尾元素

入隊操作:

while

(!que.

empty()

&&que.

back()

>value)que.

pop_back()

; que.

push_back

(value)

;//value 為要入隊的元素

如果要維護長度的話另加操作

#include

using

namespace std;

const

int max_n=

1e4;

//確保大小夠用

int que[max_n]

,head=

0,tail=0;

//隊首隊尾指標,佇列大小即為 tail-head

intmain()

;for

(int i=

0;i<

10;i++

)return0;

}

題解:

#include

#include

using

namespace std;

const

int max_n=

2e6+1;

int arr[max_n]

;int que[max_n]

,head=

0,tail=0;

inline

intread()

while

(c>=

'0'&&c<=

'9')

return sum*f;

}inline

void

write

(int x)

dowhile

(x>0)

;for

(int i=len-

1;i>=

0;i--

)putchar

(ch[i]);

return;}

intmain()

return0;

}

手寫實現bind

bind 方法會建立乙個新函式。當這個新函式被呼叫時,bind 的第乙個引數將作為它執行時的 this,之後的一串行引數將會在傳遞的實參前傳入作為它的引數。來自於 mdn 由此我們可以首先得出 bind 函式的兩個特點 返回乙個函式 可以傳入引數 返回函式的模擬實現 從第乙個特點開始,我們舉個例子 ...

Queue佇列的分析以及手寫實現

佇列對高併發幫助挺大的,弄成請求佇列 哈哈 我理解的佇列是先進先出,就像排隊一樣 接下來是 實現 我們需要建立乙個節點類 package queue public class node public node node last,t val,node next public node getlast...

手寫實現RPC 框架

乙個簡易的rpc框架,別的先不多說上github github gitee 註冊中心 zookeeper 使用curator 操作 通訊框架 netty 4.1.25版本 序列化 kryo 以下只寫了大體專案流程,以及展示部分 具體上方github 裡基本都寫了注釋 本rpc框架,有乙個統一的 框架...