677 鍵值對映(Trie)

2021-10-17 03:24:31 字數 1119 閱讀 1999

實現乙個 mapsum 類,支援兩個方法,insert 和 sum:

和208題差不多,只不過這題沒用利用乙個內部類來構造trie,而是直接構建,所以有了mapsum cur = this;。自己額外建了乙個getval()來幫助解題,其餘的沒啥說的看**注釋就行了。

class

mapsum

// 獲取指定key對應的val,key不存在返回null

public integer getval

(string key)

//如果有該節點,那麼就要走到該節點去。

cur = cur.children[c -

'a'];}

return cur.val;

//存在就返回該節點的值

}// 插入(key,val),更新每個節點val和sum

public

void

insert

(string key,

int val)

mapsum cur =

this

;for

(int i =

0; i < key.

length()

; i++

) cur.sum = cur.sum - old + val;

// 遍歷過程中更新當前節點的sum值,中間節點不更新val

//如果有該節點,那麼就要走到該節點去。

cur = cur.children[c -

'a'];}

cur.sum = cur.sum - old + val;

// 更新最後乙個節點的sum值

cur.val = val;

// 更新最後乙個節點的val值

}// 查詢字首對應的sum

public

intsum

(string prefix)

//如果有該節點,那麼就要走到該節點去。

cur = cur.children[c -

'a'];}

return cur.sum;

//有就返回這個sum

}}

677 鍵值對映

題目描述 實現乙個 mapsum 類,支援兩個方法,insert 和 sum mapsum 初始化 mapsum 物件 void insert string key,int val 插入 key val 鍵值對,字串表示鍵 key 整數表示值 val 如果鍵 key 已經存在,那麼原來的鍵值對將被替...

677 鍵值對映 Map Sum Pairs

字首樹同系列的題目,可以用字首樹的思路來儲存,只需要基於之前的字首樹實現改造。原題目要求如下 實現乙個 mapsum 類裡的兩個方法,insert 和 sum。對於方法 insert,你將得到一對 字串,整數 的鍵值對。字串表示鍵,整數表示值。如果鍵已經存在,那麼原來的鍵值對將被替代成新的鍵值對。對...

LeetCode 677 鍵值對映

實現乙個 mapsum 類裡的兩個方法,insert和sum。對於方法insert,你將得到一對 字串,整數 的鍵值對。字串表示鍵,整數表示值。如果鍵已經存在,那麼原來的鍵值對將被替代成新的鍵值對。對於方法sum,你將得到乙個表示字首的字串,你需要返回所有以該字首開頭的鍵的值的總和。示例 1 輸入 ...