請你設計乙個用於儲存字串計數的資料結構,並能夠返回計數最小和最大的字串。
實現 allone 類:
allone() 初始化資料結構的物件。
inc(string key) 字串 key 的計數增加 1 。如果資料結構中尚不存在 key ,那麼插入計數為 1 的 key 。
dec(string key) 字串 key 的計數減少 1 。如果 key 的計數在減少後為 0 ,那麼需要將這個 key 從資料結構中刪除。測試用例保證:在減少計數前,key 存在於資料結構中。
getmaxkey() 返回任意乙個計數最大的字串。如果沒有元素存在,返回乙個空字串 "" 。
getminkey() 返回任意乙個計數最小的字串。如果沒有元素存在,返回乙個空字串 "" 。
import j**a.util.hashmap;
import j**a.util.hashset;
import j**a.util.map;
import j**a.util.set;
class allone
public void inc(string key) else
} else else
if (node.keys.size() == 0)
}nodemap.put(key, newnode);
}public void dec(string key) else
} else
if (node.keys.size() == 0) }}
public string getmaxkey()
return doublelinkedlist.gettail().prev.keys.iterator().next();
}public string getminkey()
return doublelinkedlist.gethead().next.keys.iterator().next();
}}class doublelinkedlist
static class node
}public void remove(node node)
public void insertafter(node node, node inserted)
public node gethead()
public void sethead(node head)
public node gettail()
public void settail(node tail)
}/**
* your allone object will be instantiated and called as such:
* allone obj = new allone();
* obj.inc(key);
* obj.dec(key);
* string param_3 = obj.getmaxkey();
* string param_4 = obj.getminkey();
*/
432 全 O 1 的資料結構
實現乙個資料結構支援以下操作 inc key 插入乙個新的值為 1 的 key。或者使乙個存在的 key 增加一,保證 key 不為空字串。dec key 如果這個 key 的值是 1,那麼把他從資料結構中移除掉。否者使乙個存在的 key 值減一。如果這個 key 不存在,這個函式不做任何事情。ke...
資料結構 單鏈表 在O 1 時間刪除鍊錶結點
題目 給定單向鍊錶的頭指標和乙個結點指標,定義乙個函式在o 1 時間刪除該結點。思路 如果按常規思路來 刪除乙個結點需要找到該結點的前乙個結點,將這個節點的 next指向被刪除節點的 next,找到這個該結點的前乙個結點就需要遍歷鍊錶,此時就不是o 1 時間。刪除結點我們不需要找到前乙個結點,我們可...
資料結構 刪除單鏈表中p節點,時間複雜度O 1
在plist中刪除p節點,時間複雜度要求o 1 因為時間複雜度為o 1 所以常規思路遍歷鍊錶是不行的。刪除節點,其實是把該節點資料域清除,已知了p節點,那麼可以知道它的next節點,所以可以把p節點的下乙個節點的資料域賦值給p節點資料域,再讓p節點的next指向p next next,就實現了p節點...