Re: [討論] 技術總監有可能不懂BFS嗎??
來單純技術討論一下好了
其實 Visit 也不用限制一定要用 HashMap/HashSet 做
Leetcode 上很多題目的 nodes tag 都是連續的數字或英文字母
這個時候用一般的 Array 效能就會比 HashMap/HashSet 好非常多:
1. 不需動態分配記憶體(感謝一樓提醒)
2. 不需進行 Hash 運算
但也正如同大多數大大所說
一般人的想像場景不會是連續的標籤
在 nodes tag 都不連續的情況下
例如:1, 100, 10000, 1000000, 100000000
這個時候用 Array 就是低能兒了
個人淺見如上
如有錯誤還請各位大大指正
補充 peter98 與 NTHUlagka 底下關於 Hash 的討論(小弟對於 C++ 只能算是略懂,如
果錯誤就再麻煩指正了):
1. 就 C++ Standard Library 對於 HashMap/HashSet 的實作,一開始會先分配一定數量
的 buckets,後續如果超過 loading factor(預設 1.0),再動態增加(std::vecotor
的實作上
一般是加倍)。
2. 關於 Exponential Backoff 與 Bloom Filters 等其他技術,目前尚未實作於 Standa
rd Library 裡,所以有需求的話要自行實作。
3. Bloom Filters 可以解放傳統 HashSet 儲存空間帶來的限制,原理很簡單,如果不太
清楚請中文維基就可以輕鬆看懂(一般大學的分散式系統課程也都會教到)。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 138.246.3.10 (德國)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1682195508.A.1B8.html
※ 編輯: leviliang (138.246.3.10 德國), 04/23/2023 04:36:07
推
04/23 06:02,
1年前
, 1F
04/23 06:02, 1F
→
04/23 06:02,
1年前
, 2F
04/23 06:02, 2F
感謝提醒 我居然忽略了這最重要的一環
→
04/23 08:11,
1年前
, 3F
04/23 08:11, 3F
這也是一個很棒的考量點!
→
04/23 08:15,
1年前
, 4F
04/23 08:15, 4F
→
04/23 08:17,
1年前
, 5F
04/23 08:17, 5F
等等 一般的做法是一個布林陣列然後 node tag 當做 index
因此找 visited node 就是 O(1)
我其實沒很仔細看 Nic 怎麼實作
還是他的實作是你說的方式!?
※ 編輯: leviliang (138.246.3.10 德國), 04/23/2023 08:42:54
推
04/23 08:44,
1年前
, 6F
04/23 08:44, 6F
→
04/23 08:44,
1年前
, 7F
04/23 08:44, 7F
→
04/23 08:45,
1年前
, 8F
04/23 08:45, 8F
→
04/23 08:45,
1年前
, 9F
04/23 08:45, 9F
噓
04/23 11:43,
1年前
, 10F
04/23 11:43, 10F
→
04/23 11:43,
1年前
, 11F
04/23 11:43, 11F
推
04/23 12:38,
1年前
, 12F
04/23 12:38, 12F
→
04/23 15:30,
1年前
, 13F
04/23 15:30, 13F
→
04/23 15:30,
1年前
, 14F
04/23 15:30, 14F
→
04/23 15:43,
1年前
, 15F
04/23 15:43, 15F
推
04/23 15:51,
1年前
, 16F
04/23 15:51, 16F
→
04/23 15:51,
1年前
, 17F
04/23 15:51, 17F
→
04/23 15:51,
1年前
, 18F
04/23 15:51, 18F
→
04/23 15:51,
1年前
, 19F
04/23 15:51, 19F
→
04/23 15:52,
1年前
, 20F
04/23 15:52, 20F
→
04/23 19:43,
1年前
, 21F
04/23 19:43, 21F
→
04/23 19:43,
1年前
, 22F
04/23 19:43, 22F
→
04/23 19:44,
1年前
, 23F
04/23 19:44, 23F
→
04/23 19:45,
1年前
, 24F
04/23 19:45, 24F
→
04/23 19:45,
1年前
, 25F
04/23 19:45, 25F
→
04/23 19:45,
1年前
, 26F
04/23 19:45, 26F
→
04/23 19:47,
1年前
, 27F
04/23 19:47, 27F
→
04/23 19:48,
1年前
, 28F
04/23 19:48, 28F
→
04/23 19:48,
1年前
, 29F
04/23 19:48, 29F
→
04/23 20:30,
1年前
, 30F
04/23 20:30, 30F
→
04/23 20:31,
1年前
, 31F
04/23 20:31, 31F
→
04/23 20:32,
1年前
, 32F
04/23 20:32, 32F
→
04/23 20:32,
1年前
, 33F
04/23 20:32, 33F
推
04/23 20:40,
1年前
, 34F
04/23 20:40, 34F
→
04/23 20:40,
1年前
, 35F
04/23 20:40, 35F
→
04/23 20:42,
1年前
, 36F
04/23 20:42, 36F
→
04/23 20:42,
1年前
, 37F
04/23 20:42, 37F
推
04/23 20:44,
1年前
, 38F
04/23 20:44, 38F
→
04/23 20:50,
1年前
, 39F
04/23 20:50, 39F
→
04/23 20:50,
1年前
, 40F
04/23 20:50, 40F
→
04/23 20:51,
1年前
, 41F
04/23 20:51, 41F
→
04/23 20:51,
1年前
, 42F
04/23 20:51, 42F
→
04/23 20:51,
1年前
, 43F
04/23 20:51, 43F
→
04/23 20:52,
1年前
, 44F
04/23 20:52, 44F
推
04/23 20:58,
1年前
, 45F
04/23 20:58, 45F
→
04/23 20:58,
1年前
, 46F
04/23 20:58, 46F
→
04/23 20:58,
1年前
, 47F
04/23 20:58, 47F
→
04/23 20:59,
1年前
, 48F
04/23 20:59, 48F
→
04/23 21:06,
1年前
, 49F
04/23 21:06, 49F
→
04/23 21:06,
1年前
, 50F
04/23 21:06, 50F
感謝各位的討論與分享
資訊量很大我一起整理到本文中
順便把名詞打清楚
※ 編輯: leviliang (138.246.3.10 德國), 04/23/2023 23:09:39
※ 編輯: leviliang (138.246.3.10 德國), 04/24/2023 03:48:50
→
04/24 20:23,
1年前
, 51F
04/24 20:23, 51F
→
04/24 20:24,
1年前
, 52F
04/24 20:24, 52F
討論串 (同標題文章)
Soft_Job 近期熱門文章
27
110
12
77
PTT職涯區 即時熱門文章