这是一道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