Re: [討論] 我就問,刷題強者的實務表現?

作者: fshfsh (魚~*)   2022-10-06 07:56:31
※ 引述《goodson (blahblah)》之銘言:
: 最近一次面到刷題的公司...感覺已經走火入魔了,
: 考試考到難的程度,比 Google 還難
: 去年就面過一次,當時考題 Easy ~ Medium
: 隔了一年還在找人,人資看我資歷主動邀我面試,
: 卻考得更難...有真心要找可以解決問題的人嗎?
: 都沒有照照鏡子,貴司的薪水可以比 G 還高嗎?
: 我考得過 Hard,還需要領你這 120 萬左右年薪?
: 我近十年經驗,可以拿出數十萬下載量
: 還在線的作品不被重視,
: 卻考 Hard 難度的考題來羞辱人浪費我的時間,
: 我看了考題十分鐘就 submit 不爽寫了。
: 當然這樣的狀況不只一間公司,
: 我就不指名道姓了
: 大概是被刷題進去的人佔到主管位,
: 所以也就信刷題這一套。
: 但我的疑問是,刷題進去的人,
: 到底產出如何? 只會寫那些數學題型類似的演算法,
: 對於實作沒有足夠經驗,到底可以做出什麼啊?
: 有沒有人跟刷題派合作過? 真的刷題高分等於強嗎?
我親身經驗,刷題非常有用
347 top k frequent elements
23 merge k sorted lists
56 merge intervals
一些基本的工具如 recursion , tree , map , deque ,比較稍微難的像line sweep , biwise
可以說,如果我沒碰過這些題目和工具,那麼我之前做的東西絕對難產,為什麼?
只會array list的人,面對複合型問題時,要怎麼寫高效能程式?
我曾經看過有人在工作上使用四重巢狀迴圈,要不是那時資料量還非常小,不然我看某時某刻一定會有人該 為什麼系統卡住了,不會動也沒報錯欸,console也沒印東西是怎樣T^T
我不懂為什麼你要因為你解不出來,就否定掉刷題整件事欸
這就好像一個魯蛇整天怪東怪西,都是they的錯
阿你是十年經驗強者,是只有幾間公司的面試機會嗎?
我前同事現在也在挑公司,人家資策會出來的,到現在也才工作三年,怎麼現在也是年薪120起跳在挑
(附帶一提,我也算是資策會出來的,要說一句昨日我以資策會為榮,今日我以資策會為恥)
那我真的蠻好奇你的十年工作經驗到底都在幹嘛,怎麼跟別人三年差不多
我另一個前同事,在公司待了5年啊,寫code能力比我資策會時候一些同學還差,有時候跟他共事都會腦袋充血,寫code又慢又一堆漏洞,最後我選擇自己寫好偷偷蓋過去
年資真的在這一行不代表什麼,難道Google 微軟 Apple那些超級大廠都是老人嗎?人家的團隊去看照片都年輕的很
對了,再補充你一句,刷題不是考「數學模型」,是時間複雜度和空間複雜度,除非你是在寫DP
作者: Firstshadow (IamCatづミ'_'ミづ)   2022-10-06 07:59:00
好= =
作者: Csir (張胖胖)   2022-10-06 08:53:00
幸好我while迴圈每次都不會終止
作者: leolarrel (真.粽子無雙)   2022-10-06 09:35:00
西哥你...
作者: stupid0319 (徵女友)   2022-10-06 09:39:00
推簽名
作者: chatnoir (對不起)   2022-10-06 09:41:00
為什麼今日以資策會為恥?
作者: leolarrel (真.粽子無雙)   2022-10-06 09:48:00
這個資策會是指轉職仔上課的那個資策會嗎?
作者: Hsins (翔)   2022-10-06 09:53:00
資策會不好嗎?可以一邊工讀博士,還行吧><
作者: littlebroken (小柏肯)   2022-10-06 09:56:00
應該是在講最近那件事 高XX討論就跑題了 還是繼續戰刷題吧
作者: hobnob (hobnob)   2022-10-06 10:13:00
推這篇,我之前真的有一個需求用到了binary search 找index,當時的需求跟題目一摸一樣
作者: lchcoding   2022-10-06 10:30:00
西哥你財富自由了,用軟體養生...?
作者: ntpuisbest (阿龍)   2022-10-06 11:18:00
想問一下,一般在使用linkedlist我都是Call library,但是leetcode那題merge 2 sorted lists是不是就要自己去設node的class這樣才能在實務上用那題的解法?另外想問什麼場景你會需要去merge two sorted list
作者: Hsins (翔)   2022-10-06 11:23:00
樓上你這問題要先看是哪個語言的哪個函數庫,在實務上能不能那樣用,要看那個函式庫裡怎麼去實作 Linked List 和他相關 API 的。以 Java 的 java.util.LinkedList 來說,去檢查他實作的程式碼,可以知道跟你所說的自己設 node 的 class 也沒太大的差別…
作者: alihue (wanda wanda)   2022-10-06 12:19:00
開發搜尋引擎就用得到 merge two sorted list 了
作者: peter98 (新兵)   2022-10-06 12:22:00
merge two sorted list的應用明明很廣 別說工作上了 大學課本db課程也有教 DB的external sort就是merge multiple sorted listsarrays啊Lists/arrays當資料量很大 沒有辨法一次載入memory時 就可以考慮external sort 而另一種應用則是可以跟map reduce 結合 加速大數據處理 這就是上面說的搜尋引擎 或者recommendationsystem也用的到隨便說都能有應用 我是不知道反對刷題的為什麼說沒用XD搜索引擎還可以往trie延伸 根本說不完
作者: Hsins (翔)   2022-10-06 12:34:00
經驗告訴我不少人連 Trie 是什麼都不知道, 可能實務上不需要吧...
作者: ntpuisbest (阿龍)   2022-10-06 12:35:00
我沒說沒用,我自己目前也在刷題,只是目前我的工作沒用到,所以才會想問大家場景是什麼回h大我是用java沒錯,我就在想lc的題目大部分input都是head但是java的linkedlist(我記得他好像是doublelinkedlist沒錯),是不是就是因為他封好了,所以還是自己寫node比較適合,不然我也不知道他封好的狀況下怎麼去做斷開link再接上的動作
作者: peter98 (新兵)   2022-10-06 12:43:00
喔 原來是認真發問XD 好的 那我會認真回你 自己寫node比較好 練leetcode就是在練功 自己弄node才知道什麼情況用dummy head可以省多事
作者: ntpuisbest (阿龍)   2022-10-06 12:46:00
像是leetcode有些design特殊的資料結構,lru我還理解有用,而且還可以去call linkedhashmap但是像是min stack max stack這種,各位前輩有用到過嗎?
作者: peter98 (新兵)   2022-10-06 12:48:00
這樣對你寫tree也有幫助 tree實務上用很廣哦 tree相關演算法還有DFS/BFS也很廣 各個環環相扣 你終究要自己用node寫tree的 所以先用node寫list吧
作者: alihue (wanda wanda)   2022-10-06 12:48:00
其實搜尋也不是典型的 trie 了,而是為了省記憶體改用FST ,先用 FST 找到詞的 index 位置再去找詞。那些 leetcode 的資料結構頂多算是常識,實務上會有更多考量如記憶體/或是在 disk 的 index 結構、是否 immutable 、cpu overhead等。實務上需要的不是你是否馬上知道要用什麼,而是你能不能做好的 research 找到最好的演算法
作者: Hsins (翔)   2022-10-06 12:50:00
那些知識是在 research 的同時, 用來判斷適用性跟文章有沒唬爛的…我想 n 想問的是實務上會是要自己寫 node 還是怎樣,那個要從實務面上評估需不需要調整;如果你想要直接訪問操作封裝好的 LinkedList 上 Node 的話,是不建議的,因為
作者: peter98 (新兵)   2022-10-06 12:53:00
實務上我是都用lib list(挖鼻孔)
作者: ntpuisbest (阿龍)   2022-10-06 12:54:00
tree的話我知道mysql底層是b+ tree,然後霍夫曼編碼也跟二元樹有關,另外inordertravesal也可以順序印出資料,還有什麼場景適合自己刻tree嗎?以前有個物流前輩說過他用了一堆tree,但他說他不想講太多,我google搜尋 binary tree real world example也沒發現什麼,再問問各位前輩了
作者: Hsins (翔)   2022-10-06 12:55:00
他是 private 的,或許可以透過 reflect 魔改(?),但這樣就會打破他的權限,不太安全
作者: ntpuisbest (阿龍)   2022-10-06 12:59:00
感謝原Po回答,謝謝
作者: alihue (wanda wanda)   2022-10-06 13:00:00
實務上如果你越接近開發 infra 才會更容易開發演算法,但缺很少,別練了一堆結果去投 web api 的缺
作者: ntpuisbest (阿龍)   2022-10-06 13:01:00
我發現原Po好像就是我提到的倉儲物流前輩,不好意思@@
作者: Hsins (翔)   2022-10-06 13:03:00
我是覺得前端也該問啦,有些網站一開起來風扇就在那轉不停,開發者工具打開一看,做個排序寫了好幾層迴圈、不然就是一直打 API 死循環的…
作者: ntpuisbest (阿龍)   2022-10-06 13:09:00
作者: lovdkkkk (dk)   2022-10-06 16:18:00
覺得用 ArrayList 也一樣,只是要多維護 head index還比 LinkedList 少存幾百萬個 next pointer(指上面雞排例子)不過雞排攤實體空間限制應該無法一次放幾百萬片雞排還是得拆成N萬個冷凍櫃
作者: Ekmund (是一隻小叔)   2022-10-06 17:28:00
tree的話 看過用heap去做timer每個事件設到期時間 根據時間sort底下掛一堆事件這樣
作者: superpandal   2022-10-06 18:29:00
我只有一開始工作才一直用ArrayList 而且也稍微會考慮應用情境 除非一直以來都是使用別人的lib/框架 否則要比較好的完成事情肯定會愈來愈深入這些東西不一定刷題才會有 當然你說提早知道如何解刷題是有幫助的 但多半都是應用不到 而且應用場景沒連結到你也不一定想得出來可以用某某方式解算是蠻認同實踐才是檢驗真理的唯一標準而且很多內部功能都可以自己實現
作者: s25g5d4 (function(){})()   2022-10-06 20:23:00
推前端考資結,之前寫資料視覺化用 DFS 解環,然後副產物(鄰接矩陣)交給下一 phase 算排位,還好小時候刷過 UVa
作者: lovdkkkk (dk)   2022-10-06 20:31:00
一億...應該分散在多個城市,變發糖員旅行問題 (無誤)
作者: ryan2001   2022-10-06 20:50:00
說實在 這種二元辯論真的沒什麼意義
作者: dapple (dapple)   2022-10-06 20:59:00
資策會付錢讓你去美國念博士回來還不用綁約可以直接跳槽不是很棒嗎?
作者: s25g5d4 (function(){})()   2022-10-06 21:21:00
資策會本來定位不就這樣?
作者: oopFoo (3d)   2022-10-06 21:37:00
sort 3百萬?現在電腦 sort 1億筆資料也在瞬間而已。有時笨方法不笨因為電腦太快了。
作者: peter98 (新兵)   2022-10-06 22:41:00
sort 1億筆資料也在瞬間阿 XD 唬爛不打草稿 你的電腦一整套/整批下來要多少錢 才能在不用特殊演算法的情況下瞬間sort完1億筆data?
作者: viper9709 (阿達)   2022-10-07 00:10:00
感謝分享
作者: WaterLengend (Leeeeeeeeooooooo)   2022-10-07 10:40:00
那個ID就不用跟他認真了
作者: avril9950 (AguaiKK)   2022-10-07 11:46:00
刷題的至少會 BFS/DFS,實務上很多東西都要碰到 tree然後一堆天才在那邊亂寫ㄏㄏ
作者: lazarus1121 (...)   2022-10-07 12:48:00
以實務來看,雞排在放入時排序就好了吧把off line時間考慮進去,就不用太高深的演算法了
作者: hank55663 (hank55663)   2022-10-07 13:54:00
一億筆資料在用n^2排序的做法下要跑一整年欸
作者: Hsins (翔)   2022-10-07 14:21:00
量子電腦啦><
作者: daddy29 (願上帝與你同在)   2022-10-07 14:57:00
看工作需求程度 有些dp寫起來就是簡單方便快 分支少前提是你得先懂這個算法
作者: DDR678 (678)   2022-10-07 16:59:00
就推以資策會為恥這句
作者: viper9709 (阿達)   2022-10-07 17:36:00
量子電腦XDDD
作者: k798976869 (kk)   2022-10-07 17:47:00
發哥也有在研究量子運算 有興趣的博士可以去應徵而且不用刷題
作者: jerry840622 (小哥)   2022-10-07 18:50:00
刷題很有趣欸 現在看到程式碼都會想降低複雜度
作者: ku399999   2022-10-08 00:53:00
前端很多連雙for loop寫不出來 或Map/Set不會用 都算了fizzbuzz都寫錯這種的就不要說考這個有什麼用了吧...
作者: LincolnBoy   2022-10-08 00:56:00
一億筆資料只要瞬間 太猛了 我想要那樣的電腦
作者: ADEMAIN (阿德門)   2022-10-08 15:47:00
量子電腦XD
作者: abc21086999 (呵呵)   2022-10-09 01:47:00
團隊看照片年輕的很?我在電梯遇到的FTE怎麼看起來都4、50歲
作者: Firstshadow (IamCatづミ'_'ミづ)   2022-10-06 15:59:00
好= =
作者: Csir (張胖胖)   2022-10-06 16:53:00
幸好我while迴圈每次都不會終止
作者: leolarrel (真.粽子無雙)   2022-10-06 17:35:00
西哥你...
作者: stupid0319 (徵女友)   2022-10-06 17:39:00
推簽名
作者: chatnoir (對不起)   2022-10-06 17:41:00
為什麼今日以資策會為恥?
作者: leolarrel (真.粽子無雙)   2022-10-06 17:48:00
這個資策會是指轉職仔上課的那個資策會嗎?
作者: Hsins (翔)   2022-10-06 17:53:00
資策會不好嗎?可以一邊工讀博士,還行吧><
作者: littlebroken (小柏肯)   2022-10-06 17:56:00
應該是在講最近那件事 高XX討論就跑題了 還是繼續戰刷題吧
作者: hobnob (hobnob)   2022-10-06 18:13:00
推這篇,我之前真的有一個需求用到了binary search 找index,當時的需求跟題目一摸一樣
作者: lchcoding   2022-10-06 18:30:00
西哥你財富自由了,用軟體養生...?
作者: ntpuisbest (阿龍)   2022-10-06 19:18:00
想問一下,一般在使用linkedlist我都是Call library,但是leetcode那題merge 2 sorted lists是不是就要自己去設node的class這樣才能在實務上用那題的解法?另外想問什麼場景你會需要去merge two sorted list
作者: Hsins (翔)   2022-10-06 19:23:00
樓上你這問題要先看是哪個語言的哪個函數庫,在實務上能不能那樣用,要看那個函式庫裡怎麼去實作 Linked List 和他相關 API 的。以 Java 的 java.util.LinkedList 來說,去檢查他實作的程式碼,可以知道跟你所說的自己設 node 的 class 也沒太大的差別…
作者: alihue (wanda wanda)   2022-10-06 20:19:00
開發搜尋引擎就用得到 merge two sorted list 了
作者: peter98 (新兵)   2022-10-06 20:22:00
merge two sorted list的應用明明很廣 別說工作上了 大學課本db課程也有教 DB的external sort就是merge multiple sorted listsarrays啊Lists/arrays當資料量很大 沒有辨法一次載入memory時 就可以考慮external sort 而另一種應用則是可以跟map reduce 結合 加速大數據處理 這就是上面說的搜尋引擎 或者recommendationsystem也用的到隨便說都能有應用 我是不知道反對刷題的為什麼說沒用XD搜索引擎還可以往trie延伸 根本說不完
作者: Hsins (翔)   2022-10-06 20:34:00
經驗告訴我不少人連 Trie 是什麼都不知道, 可能實務上不需要吧...
作者: ntpuisbest (阿龍)   2022-10-06 20:35:00
我沒說沒用,我自己目前也在刷題,只是目前我的工作沒用到,所以才會想問大家場景是什麼回h大我是用java沒錯,我就在想lc的題目大部分input都是head但是java的linkedlist(我記得他好像是doublelinkedlist沒錯),是不是就是因為他封好了,所以還是自己寫node比較適合,不然我也不知道他封好的狀況下怎麼去做斷開link再接上的動作
作者: peter98 (新兵)   2022-10-06 20:43:00
喔 原來是認真發問XD 好的 那我會認真回你 自己寫node比較好 練leetcode就是在練功 自己弄node才知道什麼情況用dummy head可以省多事
作者: ntpuisbest (阿龍)   2022-10-06 20:46:00
像是leetcode有些design特殊的資料結構,lru我還理解有用,而且還可以去call linkedhashmap但是像是min stack max stack這種,各位前輩有用到過嗎?
作者: peter98 (新兵)   2022-10-06 20:48:00
這樣對你寫tree也有幫助 tree實務上用很廣哦 tree相關演算法還有DFS/BFS也很廣 各個環環相扣 你終究要自己用node寫tree的 所以先用node寫list吧
作者: alihue (wanda wanda)   2022-10-06 20:48:00
其實搜尋也不是典型的 trie 了,而是為了省記憶體改用FST ,先用 FST 找到詞的 index 位置再去找詞。那些 leetcode 的資料結構頂多算是常識,實務上會有更多考量如記憶體/或是在 disk 的 index 結構、是否 immutable 、cpu overhead等。實務上需要的不是你是否馬上知道要用什麼,而是你能不能做好的 research 找到最好的演算法
作者: Hsins (翔)   2022-10-06 20:50:00
那些知識是在 research 的同時, 用來判斷適用性跟文章有沒唬爛的…我想 n 想問的是實務上會是要自己寫 node 還是怎樣,那個要從實務面上評估需不需要調整;如果你想要直接訪問操作封裝好的 LinkedList 上 Node 的話,是不建議的,因為
作者: peter98 (新兵)   2022-10-06 20:53:00
實務上我是都用lib list(挖鼻孔)
作者: ntpuisbest (阿龍)   2022-10-06 20:54:00
tree的話我知道mysql底層是b+ tree,然後霍夫曼編碼也跟二元樹有關,另外inordertravesal也可以順序印出資料,還有什麼場景適合自己刻tree嗎?以前有個物流前輩說過他用了一堆tree,但他說他不想講太多,我google搜尋 binary tree real world example也沒發現什麼,再問問各位前輩了
作者: Hsins (翔)   2022-10-06 20:55:00
他是 private 的,或許可以透過 reflect 魔改(?),但這樣就會打破他的權限,不太安全
作者: ntpuisbest (阿龍)   2022-10-06 20:59:00
感謝原Po回答,謝謝
作者: alihue (wanda wanda)   2022-10-06 21:00:00
實務上如果你越接近開發 infra 才會更容易開發演算法,但缺很少,別練了一堆結果去投 web api 的缺
作者: ntpuisbest (阿龍)   2022-10-06 21:01:00
我發現原Po好像就是我提到的倉儲物流前輩,不好意思@@
作者: Hsins (翔)   2022-10-06 21:03:00
我是覺得前端也該問啦,有些網站一開起來風扇就在那轉不停,開發者工具打開一看,做個排序寫了好幾層迴圈、不然就是一直打 API 死循環的…
作者: ntpuisbest (阿龍)   2022-10-06 21:09:00
作者: lovdkkkk (dk)   2022-10-07 00:18:00
覺得用 ArrayList 也一樣,只是要多維護 head index還比 LinkedList 少存幾百萬個 next pointer(指上面雞排例子)不過雞排攤實體空間限制應該無法一次放幾百萬片雞排還是得拆成N萬個冷凍櫃
作者: Ekmund (是一隻小叔)   2022-10-07 01:28:00
tree的話 看過用heap去做timer每個事件設到期時間 根據時間sort底下掛一堆事件這樣
作者: superpandal   2022-10-07 02:29:00
我只有一開始工作才一直用ArrayList 而且也稍微會考慮應用情境 除非一直以來都是使用別人的lib/框架 否則要比較好的完成事情肯定會愈來愈深入這些東西不一定刷題才會有 當然你說提早知道如何解刷題是有幫助的 但多半都是應用不到 而且應用場景沒連結到你也不一定想得出來可以用某某方式解算是蠻認同實踐才是檢驗真理的唯一標準而且很多內部功能都可以自己實現
作者: s25g5d4 (function(){})()   2022-10-07 04:23:00
推前端考資結,之前寫資料視覺化用 DFS 解環,然後副產物(鄰接矩陣)交給下一 phase 算排位,還好小時候刷過 UVa
作者: lovdkkkk (dk)   2022-10-07 04:31:00
一億...應該分散在多個城市,變發糖員旅行問題 (無誤)
作者: ryan2001   2022-10-07 04:50:00
說實在 這種二元辯論真的沒什麼意義
作者: dapple (dapple)   2022-10-07 04:59:00
資策會付錢讓你去美國念博士回來還不用綁約可以直接跳槽不是很棒嗎?
作者: s25g5d4 (function(){})()   2022-10-07 05:21:00
資策會本來定位不就這樣?
作者: oopFoo (3d)   2022-10-07 05:37:00
sort 3百萬?現在電腦 sort 1億筆資料也在瞬間而已。有時笨方法不笨因為電腦太快了。
作者: peter98 (新兵)   2022-10-07 06:41:00
sort 1億筆資料也在瞬間阿 XD 唬爛不打草稿 你的電腦一整套/整批下來要多少錢 才能在不用特殊演算法的情況下瞬間sort完1億筆data?
作者: viper9709 (阿達)   2022-10-07 08:10:00
感謝分享
作者: WaterLengend (Leeeeeeeeooooooo)   2022-10-07 18:40:00
那個ID就不用跟他認真了
作者: avril9950 (AguaiKK)   2022-10-07 19:46:00
刷題的至少會 BFS/DFS,實務上很多東西都要碰到 tree然後一堆天才在那邊亂寫ㄏㄏ
作者: lazarus1121 (...)   2022-10-07 20:48:00
以實務來看,雞排在放入時排序就好了吧把off line時間考慮進去,就不用太高深的演算法了
作者: hank55663 (hank55663)   2022-10-07 21:54:00
一億筆資料在用n^2排序的做法下要跑一整年欸
作者: Hsins (翔)   2022-10-07 22:21:00
量子電腦啦><
作者: daddy29 (願上帝與你同在)   2022-10-07 22:57:00
看工作需求程度 有些dp寫起來就是簡單方便快 分支少前提是你得先懂這個算法
作者: DDR678 (678)   2022-10-08 00:59:00
就推以資策會為恥這句
作者: viper9709 (阿達)   2022-10-08 01:36:00
量子電腦XDDD
作者: k798976869 (kk)   2022-10-08 01:47:00
發哥也有在研究量子運算 有興趣的博士可以去應徵而且不用刷題
作者: jerry840622 (小哥)   2022-10-08 02:50:00
刷題很有趣欸 現在看到程式碼都會想降低複雜度
作者: ku399999   2022-10-08 08:53:00
前端很多連雙for loop寫不出來 或Map/Set不會用 都算了fizzbuzz都寫錯這種的就不要說考這個有什麼用了吧...
作者: LincolnBoy   2022-10-08 08:56:00
一億筆資料只要瞬間 太猛了 我想要那樣的電腦
作者: ADEMAIN (阿德門)   2022-10-08 23:47:00
量子電腦XD
作者: abc21086999 (呵呵)   2022-10-09 09:47:00
團隊看照片年輕的很?我在電梯遇到的FTE怎麼看起來都4、50歲
作者: zo4j4 (happiness)   2022-10-15 17:11:00
資策會出來真的強的能用的少數,不要誤導大家...
作者: zo4j4 (happiness)   2022-10-15 09:11:00
資策會出來真的強的能用的少數,不要誤導大家...
作者: asonge0000 (Hendy)   2022-10-31 20:36:00
重點不在於你在工作中會不會開發演算法 而是在於程式語言都幫你包裝好的API 你有沒有這個知識判斷使用哪樣的資料結構跟算法對效能比較好 如果你連這些基礎知識都不知道要怎麼樣優化效能?

Links booklink

Contact Us: admin [ a t ] ucptt.com