1. 程式人生 > >2017暑假訓練第十三天

2017暑假訓練第十三天

  今天完成了所有的訓練題目,最後兩個題目都比較的棘手,所以比較浪費時間,第一個題題意極其複雜,但最後讓求的東西卻並不是多難,就是連續的矩陣求可以圍成的最大的矩陣的面積,但理解這個題的題意卻用了大量的時間,用了4個集合的形式表述。這個題的解法就是單調棧(到今天我才發現我們學的課件上的那個寫法並非單調佇列,而是單調棧的陣列形式,每次操作的都是隊尾的元素)為了避開這種寫法下造成的head,real不會取的情況,我乾脆直接改用了stack的寫法,思路就是建立一個單增的單調棧,棧頂元素為最大。若不符合,把棧頂元素彈出並更新面積的最大值。建立完單調棧之後在對棧內元素進行清算,最後得到最大值。

  而另外一個題就是純屬麻煩的題目,而不是一個演算法題,處理資料需要費些功夫。

到今天為止,單調棧和二分的學習就結束了,完成的還算圓滿,明天將繼續對樹狀陣列的複習以及看題目。