這是一道Hard的題,但是面試經常會考這題。 我拿到這題看完,如果是面試,我會告訴面試官 用一個max varaible來記錄當前最大的number,然后遍歷所有possible rectangle, 只有比max大,比K小的才能存入max. 但是這樣非常慢。
[而且我自習思考了一下, 光遍歷所有rectangle我就已經不會了。 比如說5*5 matrix. 起始點可以top left, bot left, top right, bot right 各種地方取2*2 matrix. ..難道要遍歷O(N^2) position?? ]
。。。沒想到真有大哥這么死算出來,而且還pass了。。
這個大哥更厲害。。。面試里直接寫出來這道題臥槽。。。
http://www.geeksforgeeks.org/dynamic-programming-set-27-max-sum-rectangle-in-a-2d-matrix/
首先看一下這個概念:
Even Better Solution:
有空還得了解一下TreeSet