題目要求:
乙個整形陣列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。現在給定一棵二叉樹的頭結點,求整棵二叉樹上節點間的最大距離。題...