PTT評價

Re: [請益] (ByteDance 面試) 兩種不同寫法的複

看板Soft_Job標題Re: [請益] (ByteDance 面試) 兩種不同寫法的複作者
elements
(元素)
時間推噓21 推:22 噓:1 →:29

※ 引述《unixxxx (皓皓)》之銘言:
: ※ 引述《oopFoo》之銘言
: : 這題應該是用dict,而不是set。用dict來紀錄字元的位置,這樣就不用while來重找。: : 面試官對你很好,提示你不要用while,讓你想其它方法,可惜你卡在n2,2n的問題上。
: 2n是分析出來的結果
: 可是平常工作都不會去看程式的邏輯啊
這不是一個 code reviewer 該有的心態
如果你在意這段程式碼,把它看懂是你的責任
如果你有建議你可以跟原作者說,你可以要求他改或封裝
如果你不在意的話,那你幹嘛管它的複雜度
: 程式要寫的讓人看得懂
: 直觀 易讀 比複雜度重要才是
原作者的寫法很明顯是 O(N)
一個 while 迴圈擺在那,很難不去看他的終止條件
現實生活中,如果你看到一個這樣的演算法
你也會想去搞懂他為什麼寫出個 O(N^2)
然後一看裡面那個迴圈馬上就會知道
其實裡面那個迴圈在所有外圈跑完以後只會執行 N 次

此外,直觀易讀並不是一個單一維度的問題
他可以硬是把它做成一層迴圈
造成你輕易的判斷他是線性複雜度(其實單一迴圈也不代表線性複雜度)
結果卻讓其他的部分變得很難理解,這並不叫做直觀

大家說原 po 運氣不好
我覺得原 po 運氣很好,面試官在面試的時候就展現出了剛愎自用的性格
就算你真的進去了,以後也很難相處


--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 107.77.205.157 (美國)
PTT 網址

rajlleb12/05 06:49

FatFatPig12/05 10:53推推

dmeiki12/05 12:46

lemontea032812/05 14:32

a556064812/05 15:42

viper970912/05 16:47

unixxxx12/05 18:17原作者的寫法很明顯是 O(N) 這句不對吧

unixxxx12/05 18:18如果很明顯就可以看出 那為什麼後面會需要討論這麼久呢

boomberm12/05 21:35沒人在理O(n)都看不出來的人,討論串都在賭爛廢物面試

boomberm12/05 21:35

peter9812/05 21:39因為沒有人想理連O(N)都看不出來的人 那個人如果不是面

peter9812/05 21:40試官 基本上也沒啥人鳥他 還有 面試官很多也不過是工

peter9812/05 21:40作兩三年的人充當的 本來就不一定有一把刷子 更不用說

peter9812/05 21:40兩把刷子了

unixxxx12/05 22:31看不出複雜度也不代表演算法不強吧 以小放大

peter9812/05 22:58你滿堅持己見的 你好就好~ 沒關係

stkoso12/05 23:36看不出來也不代表不強? 那面試官問複雜度衝三小

brucetu12/06 00:32呃 這個如果沒辦法明顯看出是O(N) 應該是很少做演算法

brucetu12/06 00:32也沒在刷題

brucetu12/06 00:34就算真的第一眼沒認真看 沒看出來 原作者已經給解釋了

brucetu12/06 00:34真的就只是一個剛愎自用的面試官

brucetu12/06 00:34應該是拉不下臉承認看錯

unixxxx12/06 01:53又不是每個team都很注重演算法

你要嘛: 1. 在意這段程式碼,知道它的複雜度是多少 2. 不在意這段程式碼,相信別人告訴你它的複雜度是多少 你不能要求所有人都只能用迴圈層數來表達複雜度 好讓你「剛好看得懂一段你不太在意邏輯的程式碼」 另外,能不能一眼就看出來,其實是看人,看心情,看天氣,看熟練度 你不行不代表別人不行,當大家都行的時候你應該問的是 "為什麼我不行" 而不是嗆看得懂的人說看不懂才是正常的

sorryla12/06 02:12演算法的核心就是在討論複雜度,以小放大? 呵呵

※ 編輯: elements (107.77.205.103 美國), 12/06/2022 09:29:29

sniper282412/06 10:03天哪 真的很好笑

shooter55512/06 10:45看不出複雜度 跟演算法強 這兩者互斥

unixxxx12/06 11:05哪有大家都行 面試官不是一開始沒看出 代表寫的不夠直觀

sniper282412/06 12:12好了啦

stkoso12/06 12:35大家都行 面試官沒看出 代表他不是大家

Rukawa3112/06 12:37樓上那個到底在回什麼… 硬要辯耶

Rukawa3112/06 12:39人家就面試Algorithm Engineer職位 什麼叫又不是每個t

Rukawa3112/06 12:39eam都注重演算法 = =???

unixxxx12/06 16:58很多演算法很強的都不會算時間複雜度

unixxxx12/06 17:01 不一定會

dnabossking12/06 17:47看不出複雜度的算法強者,在下平生未聞

Ekmund12/06 17:55不注重演算法 那考演算法幹嘛...?

sorryla12/06 18:04你的強的定義可能有點低呢

hank5566312/06 19:07我認識很多很強的 這種簡單的都能輕鬆看出複雜度

kyrie7712/06 19:09不會分析複雜度怎麼好意思說演算法強…

xluds2480512/07 00:57從一個面試者的描述就能通靈出面試關剛愎自用呀?

chchwy12/07 03:03→ unixxxx : 很多演算法很強的都不會算時間複雜度

chchwy12/07 03:03這句話你講的出來XDDD

chchwy12/07 03:05白眼翻到天上 你是認真的還是在搞笑

sniper282412/07 11:43不會算到底在強什麼啦 小丑484

sniper282412/07 11:49感覺像反串來釣魚的 笑死

loadingN12/07 20:51笑死

unixxxx12/08 02:01現代演算法很少在考慮複雜度了

elements12/08 08:17東西夠小就不需要太在乎複雜度

lwecloud12/08 09:19應該只接觸PC才會覺得演算法隨便算就好

Killercat12/08 09:46現代演算法哪有不考慮複雜度?是一堆演算法都有現成實

Killercat12/08 09:47作,coder才不用傷這個腦筋好嗎...

stkoso12/08 11:15平行世界是真的存在的