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

作者: elements (Helianthus annuns)   2022-12-05 03:21:32
※ 引述《unixxxx (皓皓)》之銘言:
: ※ 引述《oopFoo》之銘言
: : 這題應該是用dict,而不是set。用dict來紀錄字元的位置,這樣就不用while來重找。
: : 面試官對你很好,提示你不要用while,讓你想其它方法,可惜你卡在n2,2n的問題上。
: 2n是分析出來的結果
: 可是平常工作都不會去看程式的邏輯啊
這不是一個 code reviewer 該有的心態
如果你在意這段程式碼,把它看懂是你的責任
如果你有建議你可以跟原作者說,你可以要求他改或封裝
如果你不在意的話,那你幹嘛管它的複雜度
: 程式要寫的讓人看得懂
: 直觀 易讀 比複雜度重要才是
原作者的寫法很明顯是 O(N)
一個 while 迴圈擺在那,很難不去看他的終止條件
現實生活中,如果你看到一個這樣的演算法
你也會想去搞懂他為什麼寫出個 O(N^2)
然後一看裡面那個迴圈馬上就會知道
其實裡面那個迴圈在所有外圈跑完以後只會執行 N 次
此外,直觀易讀並不是一個單一維度的問題
他可以硬是把它做成一層迴圈
造成你輕易的判斷他是線性複雜度(其實單一迴圈也不代表線性複雜度)
結果卻讓其他的部分變得很難理解,這並不叫做直觀
大家說原 po 運氣不好
我覺得原 po 運氣很好,面試官在面試的時候就展現出了剛愎自用的性格
就算你真的進去了,以後也很難相處
作者: rajlleb (:))   2022-12-05 06:49:00
作者: FatFatPig (胖胖の豬)   2022-12-05 10:53:00
推推
作者: dmeiki (熊麻吉)   2022-12-05 12:46:00
作者: lemontea0328 (魔幻檸檬)   2022-12-05 14:32:00
作者: a5560648 (bacon6174)   2022-12-05 15:42:00
作者: viper9709 (阿達)   2022-12-05 16:47:00
作者: unixxxx (皓皓)   2022-12-05 18:17:00
原作者的寫法很明顯是 O(N) 這句不對吧如果很明顯就可以看出 那為什麼後面會需要討論這麼久呢
作者: boomberm (boom)   2022-12-05 21:35:00
沒人在理O(n)都看不出來的人,討論串都在賭爛廢物面試官
作者: peter98 (新兵)   2022-12-05 21:39:00
因為沒有人想理連O(N)都看不出來的人 那個人如果不是面試官 基本上也沒啥人鳥他 還有 面試官很多也不過是工作兩三年的人充當的 本來就不一定有一把刷子 更不用說兩把刷子了
作者: unixxxx (皓皓)   2022-12-05 22:31:00
看不出複雜度也不代表演算法不強吧 以小放大
作者: peter98 (新兵)   2022-12-05 22:58:00
你滿堅持己見的 你好就好~ 沒關係
作者: stkoso (Asperger)   2022-12-05 23:36:00
看不出來也不代表不強? 那面試官問複雜度衝三小
作者: brucetu (sec)   2022-12-06 00:32:00
呃 這個如果沒辦法明顯看出是O(N) 應該是很少做演算法也沒在刷題就算真的第一眼沒認真看 沒看出來 原作者已經給解釋了真的就只是一個剛愎自用的面試官應該是拉不下臉承認看錯
作者: unixxxx (皓皓)   2022-12-06 01:53:00
又不是每個team都很注重演算法
作者: sorryla (Mr.東)   2022-12-06 02:12:00
演算法的核心就是在討論複雜度,以小放大? 呵呵
作者: sniper2824 (月夜)   2022-12-06 10:03:00
天哪 真的很好笑
作者: shooter555 (shooter)   2022-12-06 10:45:00
看不出複雜度 跟演算法強 這兩者互斥
作者: unixxxx (皓皓)   2022-12-06 11:05:00
哪有大家都行 面試官不是一開始沒看出 代表寫的不夠直觀
作者: sniper2824 (月夜)   2022-12-06 12:12:00
好了啦
作者: stkoso (Asperger)   2022-12-06 12:35:00
大家都行 面試官沒看出 代表他不是大家
作者: Rukawa31 (掃把昕與魯熊)   2022-12-06 12:37:00
樓上那個到底在回什麼… 硬要辯耶人家就面試Algorithm Engineer職位 什麼叫又不是每個team都注重演算法 = =???
作者: unixxxx (皓皓)   2022-12-06 16:58:00
很多演算法很強的都不會算時間複雜度不一定會
作者: dnabossking (少狂)   2022-12-06 17:47:00
看不出複雜度的算法強者,在下平生未聞
作者: Ekmund (是一隻小叔)   2022-12-06 17:55:00
不注重演算法 那考演算法幹嘛...?
作者: sorryla (Mr.東)   2022-12-06 18:04:00
你的強的定義可能有點低呢
作者: hank55663 (hank55663)   2022-12-06 19:07:00
我認識很多很強的 這種簡單的都能輕鬆看出複雜度
作者: kyrie77 (NTU KI)   2022-12-06 19:09:00
不會分析複雜度怎麼好意思說演算法強…
作者: xluds24805 (狼)   2022-12-07 00:57:00
從一個面試者的描述就能通靈出面試關剛愎自用呀?
作者: chchwy (mat)   2022-12-07 03:03:00
→ unixxxx : 很多演算法很強的都不會算時間複雜度這句話你講的出來XDDD白眼翻到天上 你是認真的還是在搞笑
作者: sniper2824 (月夜)   2022-12-07 11:43:00
不會算到底在強什麼啦 小丑484感覺像反串來釣魚的 笑死
作者: loadingN (sarsaparilla)   2022-12-07 20:51:00
笑死
作者: unixxxx (皓皓)   2022-12-08 02:01:00
現代演算法很少在考慮複雜度了
作者: elements (Helianthus annuns)   2022-12-08 08:17:00
東西夠小就不需要太在乎複雜度
作者: lwecloud (CloudEX)   2022-12-08 09:19:00
應該只接觸PC才會覺得演算法隨便算就好
作者: Killercat (殺人貓™)   2022-12-08 09:46:00
現代演算法哪有不考慮複雜度?是一堆演算法都有現成實作,coder才不用傷這個腦筋好嗎...
作者: stkoso (Asperger)   2022-12-08 11:15:00
平行世界是真的存在的
作者: sorryla (Mr.東)   2022-12-09 03:54:00
層次不同就無法溝通
作者: Merkle (你在想奇怪的東西齁)   2022-12-09 15:18:00
渣男沒辦法跟肥宅溝通床上技巧的概念
作者: leolarrel (真.粽子無雙)   2022-12-09 16:50:00
野生馬卡!

Links booklink

Contact Us: admin [ a t ] ucptt.com