我必須做一個函數,輸入一個整數m,並刪除最小值的map的m元素。 我的主要問題是O(nlogn)的複雜性。 (n是地圖的大小)ListMap:刪除最小值的m個最小元素
這是我的解決方案:
if (Map.isEmpty())
return;
if (Map.size()<m){ //remove all keys
Iterator<K> it=Map.keys().iterator(); //collection of all keys
while (it.hasNext())
Map.remove(it.next());
}
else{
for (int i=0; i<m; i++){
key=Map.findKeyMin() //complexity:O(n)
Map.remove(K);
}
這是功課嗎? – Carlo
不,我這樣做,我想要改進我的實現,特別是complessity,並知道是否有辦法在O(nlogn)中執行此操作。 – Ewybe
@Ewybe請包括您嘗試過的相關信息。我可以提供更好的解決方案,但需要證據你付出一些努力 –