實現乙個資料結構支援以下操作:
inc(key) - 插入乙個新的值為 1 的 key。或者使乙個存在的 key 增加一,保證 key 不為空字串。
dec(key) - 如果這個 key 的值是 1,那麼把他從資料結構中移除掉。否者使乙個存在的 key 值減一。如果這個 key 不存在,這個函式不做任何事情。key 保證不為空字串。
getmaxkey() - 返回 key 中值最大的任意乙個。如果沒有元素存在,返回乙個空字串""
。
getminkey() - 返回 key 中值最小的任意乙個。如果沒有元素存在,返回乙個空字串""
。
挑戰:以 o(1) 的時間複雜度實現所有操作。
432 全 O 1 的資料結構
請你設計乙個用於儲存字串計數的資料結構,並能夠返回計數最小和最大的字串。實現 allone 類 allone 初始化資料結構的物件。inc string key 字串 key 的計數增加 1 如果資料結構中尚不存在 key 那麼插入計數為 1 的 key dec string key 字串 key ...
資料結構 單鏈表 在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節點...