给定一个整数数组A[1...n-1]
whereN
是数组 A 的长度。构造一个数组B
,使得B[i] = min(A[i], A[i+1], ..., A[i+K-1])
, whereK
将被给出。数组 B 将有 N-K+1 个元素。
我们可以使用 min-heaps 为 k 个元素构造 min-heap - O(k) 来解决这个问题。对于每个下一个元素,删除第一个元素并插入新元素并堆化。
因此最坏情况时间 - O( (n-k+1)*k ) + O(k) 空间 - O(k)
我们能做得更好吗?