To improve performance, priority queues are typically based on a heap, giving O(log n) performance for inserts and removals, and O(n) to build the heap initially from a set of n elements.
這個東西 "variable 紀錄 current price 在 list 裡面第一個比它大的 alert price index" 你應該是沒有辦法事前知道 (pre-calculate) 你的方法比較像是用binary search的思路 力求在 O(log N) 的時間內找出這個 index 但是如面試中討論的 會遇到一個問題是 你要怎麼 "維護這個sorted list"? 在用戶 insert alert 的時候 你要 insert into this alert list and make sure it's still sorted 這個東西的複雜度 worst case = O(n), considering insert at the beginning then shift the rest array by 1 find insert point: O(log N) using binary search, insert O(N), so overall O(N)
ELSA Speak下載專業版7天免費試用:bit.ly/ELSAxHACKBEAR
專業版年費6折,終身會員1.5折專屬連結:elsaspeak.com/inf/hackbear
謝謝 Terry~
感謝中間人跟泰瑞哥的邀約 希望影片能對大家準備coding相關的面試有幫助 面試跟寫那種定義清楚的題目是完全兩回事
至於系統設計的部分就當有趣的影片看就好了🤣畢竟事前我完全不知道會被問到這類型問題
@@hank55663 Hi,你就算知道會被問到這類問題,也不是短期內就可以回答的出來,反而還會被電爆,因為不熟 tradeoff 和實際應用。從你後面回答的方式和內容,就可以看得出來你根本沒有概念。我想你就承認你不會,也不會有人質疑你的 coding 能力。
@@anonymologist7946 可以請問大概幾分幾秒開始問系統設計嗎? 我感覺 Terry 都是 coding 跟系統設計穿插一起問
@@crznight1651 00:42 面對現實生活中的問題,而「非 Leetcode 問題」。1:29 我們要「設計」一個股票 alert 「系統」。1:52 類似這樣的一個「系統」。 2:26 你要怎麼去設計你的「系統」。
接下來他就往 Leetcode 的方向去,Terry 也順著他讓他講。
12:25 就開始想要問分散式系統的概念,「現實」中有辦法存這麼多嗎? 12:47 又提到在「設計」這個「系統」的時候會考量到什麼。 16:38 在「真實」情況,假如要去「設計」這個「系統」,17:26 這邊就直接點明,他想聊「系統設計」,但是 17:42 Hank 說 「不知道系統設計可以考慮的點在哪裡」,後來就沒了。
其實 12:48 就已經說,「你會把這些全部放在一個 server 嗎」這邊就是考分散式系統的概念,12:51 要怎麼樣去 scale 這個系統,這邊我猜可能是要考 consistent hash 或是 hash slots 的 tradeoff。 14:08 應該就是要問這個
在 13:25 這邊就可以看出來他不懂分散式系統,說可以用 multithread,又說 multithread 可以分散到其他 server 上去做,基本上就是混淆 multithread 和 map reduce 的作法。
而且在這個 high throughput 的情況下, 16:24 的說法根本不現實,這樣所有人都要等待 lock 被釋放,造成的結果就是本來 5% 時就要收到 alert,結果股票可能都已經漲超過 15% user 才收到 alert。
@@anonymologist7946 看 A 大回應得這麼踴躍, 想必是個業界大佬, 能敲碗 A 大也來和 Terry 面一次, 讓大家知道真正的 System Design 面試該長怎樣嗎, 感激不盡
@anonymologist7946 非常感謝你看了影片 還做了很多時間標記提了很多建議 相信你一定花了很多時間 也算是達到了影片的目的 也闡述了我想表達東西 包含如何在短短幾十分鐘的面試時間至少展現最基礎的程式能力 包含如何把一個抽象的問題具體化到程式可做 在最初階段我們需要使用者提供何種資訊去達到我們系統最基礎的要求 資料結構的挑選及應用 還有如何寫簡單的測試去驗證程式
如果你也有想表達的 可以考慮拍一支影片 比起在這邊留言 會有更多人清楚你的想法
身為一個材料轉軟體的工程師,我覺得他給我的第一印象是他很快就切入到這個project要的重點,也會去思考用戶端需要什麼,自己這邊可以提供什麼,真的很敏銳的工程師
Terry真的也很厲害,上次的影片也是適當給予提示而不是直接講出解答,跨了兩個領域RD面試感覺都有類似的樣子
請問一下您是材料沒興趣嗎怎麼突然會想轉換跑道 ,因為我現在也讀材料但有點迷茫不知道未來要做什麼
Hi , 我現在是材料系大學一年級,我未來出社會也想往軟體工程師的方向發展,你可以給我一點建議嗎?
@@jadenchen3388 轉系 轉學 雙主修
@@jadenchen3388 如果一開始就選定材料系,為何要浪費時間轉到其他? 不要看現在軟體工程師夯,就都要投入軟體工程師,僧多粥少的情形只會愈來愈多。做你有興趣的事情,做到好和精,就夠了。不要小看你的專業"材料",行行出狀元。
主要是市場面不同,如我如果想要在市場上有作為的話,一定會被強迫認知到這些問題,我只能說這些非常基本,但沒遇到就永遠不會,而Terry應該這幾年也會遇到這些問題,尤其資金有限的情況,面試者還想multitread 我只能說太年輕了工作量完全不同一個量級,這樣玩multi server可能都不太行,當然這限制並沒有在題目當中,功力是被環境被逼出來的,應該初一道題目 請用terry的題目並用2000美金購買並設計出供給10W人需求的APP,做得出來進入一般公司包準沒問題
可以看得出來Hank的思維很往競程的方向想,但可能system design的地方還不夠有經驗,但整體思考還是很清晰,佩服佩服
LogN
以前我以为是英文的问题导致我反应慢所以要让对方重复某句话后才能理解问题,今天看了中文的我发现是智力的问题
低能儿
看到這種throughput很高的情境,我的第一個直覺也是偏System Architecture Design,Infra, Load Balancer, Scaling, 再到AP的整個簡易的over all,反而沒想過從coding起頭。 不過他能在問完題目馬上就想到相對應的coding解法也是很強👍
Hank 解題能力沒問題, Terry 作為面試官, 傾聽表達反饋漸進引導能力, 我認為在科技職場上是更稀有的
Terry根本超強啊
謝謝Terry分享這類面試的影片,學到很多,希望之後還有
謝謝Terry跟Hank讓我知道自己的不足及渺小,還要努力的地方還好多
建两个 PQ, 涨和跌分别移除再加回这个操作真的太骚了...我一时都没有想到这个解法, 确实还是唯手熟尔
思路和問的問題都超級清晰
alert的台語是誇獎的意思
靠背害我笑出來
確實要好好 【ㄜ樂】一下,太優秀了,世界一流的程式能力
台灣人才看懂系列
這個拿來當 APP 名稱很適合
台語的深奧,很多時候別人在誇獎你的時候 其實是在警告你 合理
設計出來可以work是基本, 但實際上應用就會像Terry考慮到的狀況,
熱門的股票或者重大數據公布時, 會有爆量的到價通知同時被觸發,
股票交易的速度是毫秒級別, 如果你的app每次都卡頓, 用戶一定會客訴到爆
所以後半段的解決方案才是真正的重點.
这期真的太棒了,希望能多出一些这样的mock interview视频,能学到非常多
思考和打字都真的好快,amazing
感覺Terry在Sys design 但Hank在講很多DSA的東西0.0
但我倒不覺得Hank不會Sys design 畢竟Google是分工很細的公司
Hank 一天可能就可以寫普通工程師15天的量了LOL
Terry: tsla 股價警示竟然設120 不錄取了
Terry: 寫120的是我 觀眾有認真看嗎
喜歡這類型的影片,希望可以多拍
然後有不同類別的工程師
例如:資料工程師,python 工程師,架構師之類的
要及時送給使用者的話
alert 產生後送進 alert queue
應該要有 worker 不斷去 alert queue 消耗 alter 來發送給使用者,這個 worker 可以 scale(maybe hosts),如果使用者變多了可以調整,雲端也可以根據條件 scale ,成本也可控
系統設計我會這樣答:
上kafka 加 flink
- flink 可以上window 可以避免短時間dupe message
- shard 可以先把不同ticker 分到不同consumer group, 之後再shard 不同price alert based on user id, 之後知道實際狀況以後可以再特別寫hashing function, 真不行也可以多加consumer
- 至於重複alert 的我覺得用priority queue 感覺很有可能會出問題; 因為當你有很多不同的instance, update 可能會有差 - 我會專門再設一個notification system, 中間會hold 每一個alert 的state (這也會需要shard, shard 的方法可以跟flink 一樣)
Terry 這樣有合格嗎?
卡
ca
卡
用 Kafka stream 很方便 把不同支股票放不同topic, low latency, high throughput
Amazon 面试我遇到过差不多的题, 然后我一样建议用Kafka, 结果面试的说不够快, 然后挂了。 我面的是ML engineer。。。
很明顯是谷歌出來的
會一直反問
並從反問中獲取有用的資訊
在推理出系統設計
这一期超顶,感觉可以下次来个系统设计的面试! 期待! Terry无敌!不愧是youtuber里面最好的程序员哈哈。
ICPC RK5 绝对的硬实力没得说
只需要把需求细化了,做这种东西(包括实现和单元测试设计)就是砍瓜切菜了
水啦 終於又有影片了
智商差距
從溝通就覺得hank思考好快速...
不愧是LC榜1, WF rank5, CF red coder...
對於未來要走軟體工程師的我,這支影片讓我獲益良多,感謝分享這些經驗🥰🥰
哇,竟然是 Hank
這人超強的,每個程式競賽都可以看到他排在台灣前幾名
當初大二左右必修課程叫algorithm, 裏面開頭就教大家思考big O, 以及各種演算法的 O,hash table, pq有的沒的,很多當初學的時候覺得莫名其妙要這些幹嘛,但其實真的很好用
其他課可能不一定準,但資結跟演算法就真的很能看得出身邊同學的鑑別度了
pq自然是總體的時間複雜度最低。
但有另一個想法,就是用最笨的vector,插入、刪除、修改都很慢(O(n)),但是觸發alert很快(O(1))。
因為系統負載最大的也是最緊急應該是發alert的時候,用戶需要以最快速度收到alert(當股價有一個大範圍的變動)。
相反,新增、刪除、修改相對而言都是比較無所謂的事情,可以慢慢做。(比較不會有人在股價100塊時,設定101塊的alert)
用vector(array)的話,如何做到觸發alert是 (O(1))呢?
@@huanzhihuang1395 如果你想用另一個角度去理解的話,假設pq的發是nlogn、增刪改也是nlogn,而vector的發是n、增刪改是n^2
@@andywu1607你要清楚用户越多,那么订阅altert就越频繁, 那么你的n^2就会变成可能每秒都要做很多次,系统性能是指数级下降的。 而用pq那个方案是线性下降的
@@andywu1607如果用個index去控制的話 發應該就O(n)? 不用去動到vector
@@huanzhihuang1395
編輯補充:他有排序,插入的時候你想成insertion sort的insertion就行了,然後vector爆掉的時候allocate一個更大的是O(n)
他說的是觸發n個alert只需要O(n),而PQ解需要O(nlgn)
在這個角度下此解確實比較好
思考很清楚而且我都聽得懂👌學data structure的動力又回來一點了
我工作了超過10年才轉讀CS ing, 完全聽得懂覺得很感動😭
非常謝謝Hank 和Terry 的分享 我覺得這大的幫助我們知道自己在求職時的方向和定位了呢(比方說自己大約還有哪些努力方向❤)
建議這種影片少拍,它會讓很多人覺得自己智能不足,而我是其中一個
感覺是第一次看到最接近泰瑞上班的真實樣子?對女生來說很自然又有魅力 恭喜找到流量密碼哈哈哈哈
基礎真的穩 厲害
這類型的影片很棒欸!
學習了 感謝無私的分享 希望這系列可以持續更新
以前我用一個server程式去應對所有用戶所有的股票報價,CPU loading不到5%,比這個alert的工作份量多了好幾萬甚至是億倍!!用thread是一定要的,只是thread會有同步的問題,不然這會造成整個程式會當掉,或者不確定性的錯誤,這就是考驗你multi-thread的功力,再來就是越多用戶時整個server的loading一定會越來越重,屆時整個server的速度就會被拖垮,這是即時性系統最大的考驗所在!!
雖然我聽不懂
但我還是有看完😂😂😂
這影片真的獲益良多,謝謝你們!
好愛這次的影片
實務project的討論比考LeetCode還好玩多了
本質也還是資結啊
感覺後面 ticker 維護 PQ 會遇到一個問題是, 這隻 ticker 如果有多數用戶設定多項 alert 會有可能設定當下沒吃到(因為 thread 正在 update)的問題.. 另外也有在某一時間點反覆告警問題. 是不是針對每個 PQ內的 task 加上 timestamp 判斷即可呢? 因為立即設定, 立即生效的這個`立即`感覺也是可以討論的? 謝謝
非常好的视频,明显对比出系统设计和做算法题目的差别,我感觉系统设计时工程师相信市面上的成熟产品,相信它们用了OK的数据结构和算法,工程师只操心怎么合理地用这些产品,数据库怎么sharding,行存列存,列存的实时性一致性,选适合数据特征的存储引擎,项目升级的难易程度,兼容性吧啦吧啦。infra 工程师更像是数据结构算法和系统设计更兼修的角色
反應好快
思考速度真的快
難怪我進不了谷歌
hank好厲害...
寫最大heap感覺在大用戶場景會爆內存,我覺得工程角度要先確定大流量,可能會要用DB來保存alert表,然後MQ來處理高併發
这类影片受益良多,希望Terry能常常做这类题材的影片,加油
为什么不用 Redis,Redis里也可以维护 map 和 pq,这样你的程序就是无状态的了,这样在微服务环境可能更合理?然后再把一组操作集成再一个 lua 脚本里面,这样就不会有竞争了
覺得hank真的很強,一聽到問題就想好coding要怎麼執行
雖然可能跟實務上有落差,但我覺得這是難免的
太神啦 🎉 感謝分享
身為軟體工程師 Hank回答算是蠻基本的設計 中規中矩
後面說的multi-thread 給我的感覺 好像沒有很常用 論述起來有點空談
Load balance / HA 也可以多考慮
如果有更多時間思考 可以設計出更好的design
目標是最低延遲 應該把CDN 5G AI 都加上去
看起來就是完全不懂 system design XD
感覺是很算法的視角,高流量的系統第一步我覺得都不是直接考慮用一個內存結構,而是整個系統的架構怎麼樣分配存儲跟拉數據,最後才能決定用什麼data structure
同意,第一個通常不是去想怎麼改code,而是infra
@@qewradsf1028同為算法型工程師,希望聽聽前輩你在面對這種問題時會怎麼回答呢
跟之前另一個*技術總監*的面試真的差太多了 完全不是一個級別….
笑死 我也正要說 在地上打滾的…
覺得整個對談的流程讓我收穫很多!想請問Terry在前面核心功能建立的部分,hank是先討論了各種情境下可能需要的邏輯還有介面,最後再根據這個架構提出可能需要測試的點。那這樣算是跟Test-driven development的方式相悖嗎?
公司跟價錢(假設有上限)都是有限個數 做一個二維vector 也可以做為 load balance 依據
user 設定 alert 就將 userid 插到對應的 vector (或 tree方便插入刪除)
ticker update 去尋找要 撈哪些範圍 再把裡面的 userid 撈出來
整體類似類似三維的vector
缺點可能是 某些公司跟價錢很多人設定 有些很少設定 load balance 沒這麼好平衡
我覺得比起演算法 這一題資料結構應該更重要
这个复杂度会高, PQ 的 logn 确实算 optimal 了
我覺得這題如果不可以使用redis之類的,
可以用觀察者模式跟 array 去處理,
每支股票被建立通知時,根據設定股價 建立觀察者物件, 然後把每個設定存成link-list,
每個物件因為有sub物件,當接收到pub的時候,觸發後把自己從array中移除
感谢您的建议!买了XAI58N,现在非常看好!🚀
想請教一下這樣算離題嗎? 以爲這是system design上的問題,但是沒想到是用dsa來回答。還是說台灣這邊的這種情境題就是期望這樣的回答?
看面試想要的是哪種樣子的吧
AFAIK, hank 本身上班在做的也不是這種類型的 project,所以可以看得出來這方面接觸比較少,但是大概也同樣可以知道就算沒什麼接觸過,他還是可以從基本的道理推敲出一些還可以的系統,或許多聊下去把該考慮的東西都講出來後 (畢竟少接觸會需要有人多點幾下),他也是可以提出細緻的解決方案的
沒,就是離題
@@anonymologist7946 你是不是那種覺得面試一定要講出標準答案的人🤣
@@o_ToT_oT 你是不是那種面試官問你問題你都離題的那種人🤣
又沒事先說這關是考算法還是設計,系統設計看實務經驗,沒使用過本來就不可能憑空講出一堆名詞
哇~我好喜歡這種!可以看泰瑞上班的樣子很帥,催產素今日已達標!看優秀的人被面試,受益良多!
hank 不帥嗎?
也很帥,可是泰瑞是本命!
可以多一點這系列的嗎?對剛開始設計系統的新手很有幫助XDD
這個Google 工程師 果然有實力耶
不像之前那位大翻車 XD
倒是想多聽一些系統設計,比如從哪得到的靈感or 借鑑等等
PQ應該可以拆成多個小PQ?畢竟只要小於或大於設定的條件就pop,多個thread同時去對小PQ做pop。
想知道哪裡能看到類似的影片或資訊,滿想多看看的,幫助很大呢
完全是兩個神人的對話^^
希望可以看到更多System design的實際面試情況
很棒的影片🎉
判斷問題需要的類別跟定義程式類別 成員成員的速度好快 後面邏輯推積起來後 做應答能力也好快
中間就跟不上了
幫大家回憶一下 一年前Terry 面試台灣 (技術總監) 感謝二樓提供關鍵字
有啦 查terry nic,第一個就是了🤣
靠盃笑出來
號稱本科系,結果BIG O都不知道是甚麼
你們真的很壞 都過這麼久了還要拿出來鞭屍XD
這個 system design 沒很強 = =,總監應該要考 sys design 而不是 big o
感謝分享,超讚的
我覺得這道題的難點在於怎樣去handle back-pressure 還有處理Multi-region的部分
真的好厲害啊!!!
很有價值!按讚
想看國內某幣圈公司的CTO如何解相同的問題! 這題對他應該超吃香,不答可惜!
他會說忘記了
用work-stealing來去做分配?或者RabbitMQ?
讚讚 想看更多
比什麼地上滾的還強耶 技術長?...
人家沒實力去國外只能在台灣不意外
獲益良多,身為CS出身的軟體工程師,要好好回去溫習資結和演算法了
以後團隊面試依照此法辦理 讚
好利害
第一題有點像是 銀行網銀的匯率到價通知
希望tw的銀行的也能做到這個google工程師的算法
因為tw銀行的每次通知都很不即時
TW有一家也是CXXXXX 一直當機
就決定是你了!
不知道Hank年資大概在幾年呢?我自己感覺如果是資深的後端,後面關於 System Design 的部份應該是要能夠回答得更好一些(也有可能他本身對於股票相關的 domain 接觸得少,有一些現實的情況聯想不到)
可以請問你指的 System design 部分指的大概是什麼嗎,是比如多個用戶要同時set alert 對 priority queue 做更改,不然會有 race condition 這種問題,所以可能需要有一些互斥存取的機制之類的嗎?(單純學生想請教)
@@paul-qm6ck 超級菜的人路過亂回幾下
我自己可以想到的面向除了 race 的問題外,還有更多是怎麼 scale 的問題,例如像是系統有沒有哪邊是可以自適應例如突發大流量等狀況,而 scale 起來後就會有除了 race 以外的各種 sync 問題,又或者是有沒有哪邊可以插個 cache 加速一些,此外一個好的大型分散式系統通常還要考慮如果你有幾台機器故障的時候,要怎麼保證系統還能服務等
@ 了解了,感謝你的回覆~
Google TW 大部份是 device software, 考這種系統跟他們平常在設計的本來就不一樣
@@paul-qm6ck 一般來說會用常見的技術如 in memory cache 和 queue 去處理,現實中會用 db 去抓取資料,也要考量 db query 的效率等等一系列問題。
寫 code 能力無庸置疑,但是他的做法在現實中不可用,頂多算是 coder ,不是 programmer。他的 system design 還需要加強,其他留言一直吹很厲害,看了頭很痛...
真的可以看得出來完全沒有system design相關知識 只是一個刷題很強的leetcoder罷了
現實怎麼可能存priority queue? 一定是要用商用db
@@haifengkao9075 對啊 所以 Terry 一直問他現實中會如何處理,但是他說他不知道可以考量的點在哪。
好猛
這就是高端人類的對話嗎…..我覺得我好廢喔🤣
精彩的一集
压力好大,最近也在找工作。从专员准备面试经理岗。
不要找壓力不就沒了
好奇~公司面試時有考慮讓受試者用AI當助手嗎
就看受試者給的提示和如何調整
並適時解釋或給予更好的提示等等
是否更符合現代開發方式
畢竟現在都是AI產扣 人工檢查😂
Hank这样可以通过Terry的面试吗?
hank 大 priority queue 中毒了 XD
XAI58N仍然被极度低估。
有料
這個功能tradingview不是有了嗎?而且還免費捏
只是面試而已 又不是要working
我知道,但如果這個東西市面上明細已經有了很強的競品,我是面試的人我會直接指出來。在我的角度來說,一個好的員工不一定是要有超乎常人的產值,反而是能幫公司避多少坑,尤其是新創公司,一個路走偏了就G了,方向也許是高層決定的,但這個方向明顯有疑慮時,執行者提出反饋的價值是遠大於聽命令硬幹的,這如果是仿真面試,我覺得能這樣回答的人反而會勝出吧。
當然我不是相關領域的從業人員,我的公司也不大,也不用開創新的技術,我的面試問題也沒這麼深,我只是發表一下個人觀點,各位網友可以看看就好,不用太認真🙂
@@user-icarus77 面試結果的成功與否我覺得蠻吃考官本身的主觀評價,以這題為例,有的考官就覺得他希望知道你怎麼去分析並達成。那你提出為什市面上有了的東西還要去做?你這句話在不同考官看來也會有不同結果。
@@duei7789 對的,但問這個問題的口氣也很重要,如果考官還是堅持要求面試者作答,我不認為提出問題會被扣分,只要面試者不是逃避作答就行了
希望能看到面system design的影片
某族群最喜歡酸講話用中英文混雜的晶晶體
殊不知專業的工程師都是用這種方式跟專業人士討論的
程式可沒有中文啊 描述行為直接用語法比較直接
好像只有某人在吧
是我真的太菜還是這面試後面的討論太深奧了 看起來超難的
奇怪为啥他的queue插入删除是logN?他的queue是红黑树?红黑树可以做pop操作哦?pop不是sequencial的结构吗?
To improve performance, priority queues are typically based on a heap, giving O(log n) performance for inserts and removals, and O(n) to build the heap initially from a set of n elements.
為什麼知道紅黑樹會不知道 priority queue
priority queue是通常是使用heap實作吧
@@cia1099 也沒人規定pq不能是balanced search tree
pq 是 abstraction 你要用 array, linked list, tree 實作都可以
@@a3393962 c++的容器真的不熟😂而且視頻又講很快,聽到queue還帶排序,就覺得怪覺得他的tree還退化成列表
這 coding 能力只有強可以形容
這次的大神比上次在地上滾的強太多了
可不可以把一个股票的alert prices 做成一个sort 好的 list,同时有一个variable 记着这个current price在这个list 里面的第一个比他大的alert price的index -1
(如,alert price: [100,120,130,140] 假设current price 是90,那么Current price index 就是0, 若是105,那么就是1。
当new price 过来的时候,就去找比它第一个大的alert price的index,(若new price 是135,new price index 就是2。之前price index是0,所以只要alert 这个list 里面index在0至2,因为90至135,需要trigger的就是100,120,130。 如果新的index和旧的index一样,那么就直接skip。最后把current price index 更新至现在的就好。
这样子就不用这么多 min heap,max heap,只要一个list(array)就好
算法新手,看到题目没看完视频就先写下来,请前辈指点,谢谢🙏
Update: 不需用list,store 到heap上更好
這個東西 "variable 紀錄 current price 在 list 裡面第一個比它大的 alert price index"
你應該是沒有辦法事前知道 (pre-calculate)
你的方法比較像是用binary search的思路 力求在 O(log N) 的時間內找出這個 index
但是如面試中討論的 會遇到一個問題是
你要怎麼 "維護這個sorted list"?
在用戶 insert alert 的時候 你要 insert into this alert list and make sure it's still sorted
這個東西的複雜度 worst case = O(n), considering insert at the beginning then shift the rest array by 1
find insert point: O(log N) using binary search, insert O(N), so overall O(N)
@@酸民-u1d 感謝回覆。沒錯,就是用binary search的思路。是不是可以說這個思路的弱點就是用戶insert alert上呢?謝謝
@@huanzhihuang1395 是的沒錯 這就是如影片中的方式
@@酸民-u1d 貌似想明白了,其實可以用heap來儲存alert prices,這樣的話insert 和 remove alert 都能做到log n,更加高效
@@酸民-u1d 感謝指點,在下受益匪淺!
來吸一下神人的空氣,話說有人能解釋嗎>
香蕉什麼時候去Google?