資料結構和演算法經典100題 第32題

2021-07-09 06:51:40 字數 1122 閱讀 5011

題目要求:

乙個整形陣列arr和乙個大小為w的串列埠從陣列的最左邊滑到最右邊,視窗每次向右邊滑乙個位置。

例如:陣列為【4,3,5,4,3,3,6,7】,視窗大小為3時:

【4,3,5】,4,3,3,6,7 視窗最大值為5

4,【3,5,4】,3,3,6,7 視窗最大值為5

4,3,【5,4,3】,3,6,7 視窗最大值為5

4,3,5,【4,3,3】,6,7 視窗最大值為4

4,3,5,4,【3,3,6】,7 視窗最大值為6

4,3,5,4,3,【3,6,7】 視窗最大值為7

要求實現乙個函式:

輸入:整形陣列attr,視窗大小為w

輸出:乙個長度為n-w+1的陣列res,res[i]表示每個視窗的最大值。

題目解析:

bool getmaxwindow(const

vector

&arr,const

int w, vector

&res)

deque

qmax;

int length = (int)arr.size();

for (int i = 0; i < length; ++i)

break;

} else

}if (qmax.empty())

if (i >= w - 1)

}return

true;

}

測試程式:

int main(void) ;

vector

arr(tmp,tmp+8);

vector

res;

getmaxwindow(arr, 3, res);

int len = (int)res.size();

for (int i = 0; i < len; ++i) {

cout

<<" "

《測試輸出結果:

55546

7program ended with

exit code: 0

路漫漫其修遠兮,吾將上下而求索…

資料結構和演算法經典100題 第27題

已知一棵二叉樹的每個節點的值都不同,給定這個二叉樹的先序和中序遍歷陣列,不要重建整棵二叉樹,而知通過給定的陣列直接生成正確的後序陣列。include include include include using namespace std int setpos int prearray,int pre...

資料結構和演算法經典100題 第28題

題目要求 表示一棵二叉樹中序遍歷結果,1.求有多少種可能的二叉樹結構?2.返回所有可能的二叉樹結構的頭結點?題目解析 1.乙個關鍵點是 中序遍歷一棵二叉樹結果有序無重複,那麼這棵二叉樹必然是搜尋二叉樹。根據搜尋二叉樹的性質,結點1一定沒有左子樹,所以結點1為頭結點可能的二叉樹結構數目取決於其右子樹的...

資料結構和演算法經典100題 第29題

題目要求 二叉樹節點間的最大距離問題從二叉樹的節點a出發,可以向上走或者向下走,但沿途的節點只能經過一次,當達到節點b時,路徑上的節點數叫作a到b的距離。比如 1 2 3 4 5 6 7節點4和節點2的距離為2,節點5和節點6的距離為5。現在給定一棵二叉樹的頭結點,求整棵二叉樹上節點間的最大距離。題...