487 姓名去重

2022-05-12 01:53:08 字數 900 閱讀 9075

原題**:

您在真實的面試中是否遇到過這個題?  是

[

"james",

"james",

"bill gates",

"bill gates",

"hello world",

"hello world",

"helloworld"

]

返回:

[

"james",

"bill gates",

"hello world",

"helloworld"

]

返回名字必須都是小寫字母。

標籤

雜湊表思路:建立 string——int 雜湊表,key為字串。遍歷陣列,將每個字串轉成小寫,同時將(字串,1)成對插入到雜湊表中。【1是value,這道題不關心value只關心key,所以value可以自定義】

遍歷雜湊表,將key儲存在結果陣列中,return出去。

ac**:

class

solution

m.insert(pair

(names[i],1

)); }

map::iterator it=m.begin();

for (;it!=m.end();it++)

return

result;

}};

由於本題只關心key,還可以使用c++11中的unordered_set,參考此文

c++ stl 之 unordered_set 介紹

c++ 標頭檔案系列(unordered_map、unordered_set)

count去重和distinct去重

有兩種去重方法 1 select count distinct id from a 這個是將所有值都放入到記憶體中,key為列值,通過hash算出有多少個key就是多少行。2 select count 1 from select 1 from a group by id a,這個是通過group b...

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

lambda 物件去重 lambda去重

lambda去重使用collectingandthen方法 list 物件中,如果根據object的單個屬性進行過濾去重,則 list userlist users.stream collect collectors.collectingandthen collectors.tocollection...