有n座建筑物,第i座建筑物由a_i砖组成。我们正在从左侧看这条街,并希望看到k座建筑物。为此,我们需要在现有建筑物的顶部添加一些砖块。需要多少座建筑物?
大约一个星期以来,我一直在努力解决问题,但是我仍然没有想到任何出色的主意。我创建的唯一一件事是当建筑物的高度大于/等于左侧建筑物(但必须更大)时可见的情况的算法。然后,我们可以将最高的建筑物“立即保留”到一个数组中,对于每个建筑物计数x = HighestTillNow-建筑物的高度,并选择k个最小的x。
示例:
k = 3;
a_i:5 1 4 7 2 5;
最高时差现在:5 5 5 7 7 7;
X:0 4 1 0 5 2;
所以答案= 0 + 0 + 1;
但是在较硬的版本上它变得越来越复杂。然后,您实际上可能甚至需要向最高层的建筑物添加砖块。 非常感谢您的帮助。
我是stackoverflow的新手,所以请告诉我我是否做错了邀请投票。谢谢