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

看板 Soft_Job
作者 elements (元素)
時間 2022-12-05 03:21:32
留言 55則留言 (24推 1噓 30→)

: ※ 引述《oopFoo》之銘言 : : 這題應該是用dict,而不是set。用dict來紀錄字元的位置,這樣就不用while來重找。 : : 面試官對你很好,提示你不要用while,讓你想其它方法,可惜你卡在n2,2n的問題上。 : 2n是分析出來的結果 : 可是平常工作都不會去看程式的邏輯啊 這不是一個 code reviewer 該有的心態 如果你在意這段程式碼,把它看懂是你的責任 如果你有建議你可以跟原作者說,你可以要求他改或封裝 如果你不在意的話,那你幹嘛管它的複雜度 : 程式要寫的讓人看得懂 : 直觀 易讀 比複雜度重要才是 原作者的寫法很明顯是 O(N) 一個 while 迴圈擺在那,很難不去看他的終止條件 現實生活中,如果你看到一個這樣的演算法 你也會想去搞懂他為什麼寫出個 O(N^2) 然後一看裡面那個迴圈馬上就會知道 其實裡面那個迴圈在所有外圈跑完以後只會執行 N 次 此外,直觀易讀並不是一個單一維度的問題 他可以硬是把它做成一層迴圈 造成你輕易的判斷他是線性複雜度(其實單一迴圈也不代表線性複雜度) 結果卻讓其他的部分變得很難理解,這並不叫做直觀 大家說原 po 運氣不好 我覺得原 po 運氣很好,面試官在面試的時候就展現出了剛愎自用的性格 就算你真的進去了,以後也很難相處 -- 你要嘛: 1. 在意這段程式碼,知道它的複雜度是多少 2. 不在意這段程式碼,相信別人告訴你它的複雜度是多少 你不能要求所有人都只能用迴圈層數來表達複雜度 好讓你「剛好看得懂一段你不太在意邏輯的程式碼」 另外,能不能一眼就看出來,其實是看人,看心情,看天氣,看熟練度 你不行不代表別人不行,當大家都行的時候你應該問的是 "為什麼我不行" 而不是嗆看得懂的人說看不懂才是正常的
※ 批踢踢實業坊(ptt.cc), 來自: 107.77.205.157 (美國)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1670181694.A.2DC.html

rajlleb: 推 12/05 06:49

FatFatPig: 推推 12/05 10:53

dmeiki: 推 12/05 12:46

lemontea0328: 推 12/05 14:32

a5560648: 推 12/05 15:42

viper9709: 推 12/05 16:47

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

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

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

boomberm: 官 12/05 21:35

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

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

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

peter98: 兩把刷子了 12/05 21:40

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

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

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

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

brucetu: 也沒在刷題 12/06 00:32

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

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

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

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

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

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

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

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

sniper2824: 好了啦 12/06 12:12

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

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

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

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

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

unixxxx: 不一定會 12/06 17:01

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

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

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

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

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

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

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

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

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

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

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

loadingN: 笑死 12/07 20:51

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

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

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

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

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

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

sorryla: 層次不同就無法溝通 12/09 03:54

Merkle: 渣男沒辦法跟肥宅溝通床上技巧的概念 12/09 15:18

leolarrel: 野生馬卡! 12/09 16:50

您可能感興趣