Algorithm 使用面积>;计算二维直方图中的矩形数=K

Algorithm 使用面积>;计算二维直方图中的矩形数=K,algorithm,big-o,histogram2d,Algorithm,Big O,Histogram2d,问题是在一个有N列的二维直方图中,用面积计算矩形的数量≥ K.列的宽度为1,我知道第I列的单位正方形数 我提出了以下O(N²)算法:设hi为第I列的高度。然后我可以做如下操作:当我将I,j固定为矩形的底面时,我找到矩形h的最高可能高度,并将max(0,h-ceil(K/(j-I+1))+1)添加到答案中 我听说有一个O(nlogn)算法,我试着用这个事实来推导它 ∑Ni=1N⁄i~N对数N 然而,这就是我所拥有的一切,我无法取得进一步的进步。你能就算法给出一个提示吗?重新组织问题并删除$符号。提

问题是在一个有N列的二维直方图中,用面积计算矩形的数量≥ K.列的宽度为1,我知道第I列的单位正方形数

我提出了以下O(N²)算法:设hi为第I列的高度。然后我可以做如下操作:当我将I,j固定为矩形的底面时,我找到矩形h的最高可能高度,并将
max(0,h-ceil(K/(j-I+1))+1)
添加到答案中

我听说有一个O(nlogn)算法,我试着用这个事实来推导它

∑Ni=1N⁄i~N对数N


然而,这就是我所拥有的一切,我无法取得进一步的进步。你能就算法给出一个提示吗?

重新组织问题并删除$符号。提示-在发布问题后,试着从读者的角度阅读问题。你能澄清一下吗?是否所有列的宽度都为1?高度是整数吗?K是整数吗?我假设要计算的矩形需要它们的宽度和高度是整数。还有其他限制吗?这是我的猜测。
NlogN
来自对
(高度、索引)
元组数组进行排序。排序数组中的第一个条目是应用于直方图全宽(w1)的高度(h1)。在计算该(h1 x w1)区域内的矩形后,将直方图拆分为两个或多个较小的直方图(基本上删除高度h1的所有列)。排序数组中的下一个条目(高度大于h1)正好应用于较小的直方图中的一个。计数,分割,继续。当你说2D直方图时,你是指一个二值图像吗?@orlp重新组织问题并删除$符号。提示-在发布问题后,试着从读者的角度阅读问题。你能澄清一下吗?是否所有列的宽度都为1?高度是整数吗?K是整数吗?我假设要计算的矩形需要它们的宽度和高度是整数。还有其他限制吗?这是我的猜测。
NlogN
来自对
(高度、索引)
元组数组进行排序。排序数组中的第一个条目是应用于直方图全宽(w1)的高度(h1)。在计算该(h1 x w1)区域内的矩形后,将直方图拆分为两个或多个较小的直方图(基本上删除高度h1的所有列)。排序数组中的下一个条目(高度大于h1)正好应用于较小的直方图中的一个。计数,分割,继续。当你说2D直方图时,你是指二值图像吗?@orlp