677 鍵值對映 Map Sum Pairs

2021-09-13 13:09:03 字數 1013 閱讀 8242

字首樹同系列的題目,可以用字首樹的思路來儲存,只需要基於之前的字首樹實現改造。原題目要求如下:

實現乙個 mapsum 類裡的兩個方法,insert 和 sum。

對於方法 insert,你將得到一對(字串,整數)的鍵值對。字串表示鍵,整數表示值。如果鍵已經存在,那麼原來的鍵值對將被替代成新的鍵值對。

對於方法 sum,你將得到乙個表示字首的字串,你需要返回所有以該字首開頭的鍵的值的總和。

示例 1:

參考字首樹實現的思路,把節點中的boolean變數改為鍵值對的值

sum方法的時候首先要找到匹配字首的節點,然後用層序遍歷(廣度優先)方式去遍歷這個節點的子樹。遍歷的時候使用遞迴進行遍歷。

public class mapsum 

/*** 字串表示鍵,整數表示值。如果鍵已經存在,那麼原來的鍵值對將被替代成新的鍵值對。

* @param key 鍵

* @param val 值

*/public void insert(string key, int val) else

}//儲存值

currentnode.value=val;

}else

}/**

* 根據表示字首的字串,返回所有以該字首開頭的鍵的值的總和。

* @param prefix 字首

* @return

*/public int sum(string prefix) else

}if(match)

}return result;

}/**

* 層序遍歷(廣度優先)方式訪問樹

* @param mapsum

* @return

*/private int sumbyfloor(mapsum mapsum)elseelse}}

return result;

}}

677 鍵值對映

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

677 鍵值對映(Trie)

實現乙個 mapsum 類,支援兩個方法,insert 和 sum 和208題差不多,只不過這題沒用利用乙個內部類來構造trie,而是直接構建,所以有了mapsum cur this 自己額外建了乙個getval 來幫助解題,其餘的沒啥說的看 注釋就行了。class mapsum 獲取指定key對應...

LeetCode 677 鍵值對映

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