我得到了N座高度的建筑物。
我必须形成大小为M且具有相同高度建筑物的群组。鉴于,我可以摧毁更高的建筑物,使其高度与较小的建筑物相等。
我必须找到要销毁的最小建筑物数量,以便形成完全N / M组。给予,N总是可以被M整除。
例如:
N = 8,M = 4
建筑物高度:6 4 5 1 5 2 3 2
答案:5
我们可以摧毁两个高度为5的建筑物到两个2's形成第一组然后摧毁高度3,4,6到高度1的建筑物以形成具有相同高度1的建筑物的第二组。
因此,我们形成了大小为4(M)的2个(N / M)组。要销毁的建筑物的最小数量为5个。
N = 8,M = 4
建筑物高度:1 1 1 2 4 4 4 4
答案:1
任何人都可以给我一些暗示。
答案 0 :(得分:0)
算法
伪代码
arr[] = {6 4 5 1 5 2 3 2}
map<int, int, greater<int>> mp;
for(auto elem : arr)
{
if(data exist)
increase freq
else
insert key with freq as 1.
}
sum = 0
for(i=0 to N/M)
sum += freq of mp[i]
Result = N - sum