Re: [討論] 我就問,刷題強者的實務表現?
※ 引述《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
--
昨日我以資策會為榮,今日我以資策會為恥
--
好= =
幸好我while迴圈每次都不會終止
西哥你...
推簽名
為什麼今日以資策會為恥?
這個資策會是指轉職仔上課的那個資策會嗎?
資策會不好嗎?可以一邊工讀博士,還行吧><
應該是在講最近那件事 高XX
討論就跑題了 還是繼續戰刷題吧
推這篇,我之前真的有一個需求用到了binary search 找inde
x,當時的需求跟題目一摸一樣
西哥你財富自由了,用軟體養生...?
想問一下,一般在使用linkedlist我都是Call library,
但是leetcode那題merge 2 sorted lists
是不是就要自己去設node的class這樣才能在實務上用那
題的解法?
另外想問什麼場景你會需要去merge two sorted list
先抱歉一下,我其實是要說 merge k sorted list
https://leetcode.com/problems/merge-k-sorted-lists/第1個問題,我不太確定你是用什麼語言 我自己是用Java,那麼並不是我要自己設node class,而是你的執行環境本身就已經存在ListNode class了 題目也只允許你回傳ListNode 類別,自然你不能用Java內建的LinkedList 第2個問題,我假設一個情境 有家雞排店會從k家廠商進不同數量的雞排,雞排我們可以當作只有保存期限一種屬性 class 雞排 { Date expireDate; } 就算是同一家廠商來的雞排,保存期限也不一定一樣 當有顧客來的時候,雞排店老闆固定會用「保存期限最接近過期的雞排」,並且「已過期的雞排」不使用 現在請寫一個程式來符合這個需求。 PS:每家廠商送來的雞排是用保存期限來排序的,你可以當成是List<雞排>。 那麼你可能會說,我創一個ArrayList,然後把所有商店的所有雞排都放到這個List裡面去,再用保存期限去排序 排序是O(nlogn),n是雞排的總數,每次取出(倒序排然後每次都從最後一位取)是O(1) 這樣做確實也可以,但因為雞排本身就排好了 我可以創一個PiorityQueue,然後把k家廠商的雞排的第一家作為代表,放到PQ中 這麼一來,建立PQ時間複雜度就縮小成O(klogk),每次取出為O(logk),取完後再把下一份雞排加回去O(logk) 另外,如果雞排沒有用完,由於PQ的特性,我共不會做完整的排序,而是取到哪排到哪 比方說我有3家廠商好了,每家廠商進1000000份雞排,也就是k = 3,n = 3000000 如果你用第一種方法,那一定會排完這3000000雞排,再一份一份拿給顧客 第二種方法,就相當於我這3家廠區放入比較池,拿最接近過期的給他,再把那家的下一片雞排放到比較池
樓上你這問題要先看是哪個語言的哪個函數庫,在實務上能不
能那樣用,要看那個函式庫裡怎麼去實作 Linked List 和他
相關 API 的。
以 Java 的 java.util.LinkedList 來說,去檢查他實作的程
式碼,可以知道跟你所說的自己設 node 的 class 也沒太大的
差別…
開發搜尋引擎就用得到 merge two sorted list 了
merge two sorted list的應用明明很廣 別說工作上了 大
學課本db課程也有教 DB的external sort就是merge multip
le sorted listsarrays啊
Lists/arrays
當資料量很大 沒有辨法一次載入memory時 就可以考慮exte
rnal sort 而另一種應用則是可以跟map reduce 結合 加速
大數據處理 這就是上面說的搜尋引擎 或者recommendation
system也用的到
隨便說都能有應用 我是不知道反對刷題的為什麼說沒用XD
搜索引擎還可以往trie延伸 根本說不完
經驗告訴我不少人連 Trie 是什麼都不知道, 可能實務上不需
要吧...
我沒說沒用,我自己目前也在刷題,只是目前我的工作沒
用到,所以才會想問大家場景是什麼
回h大我是用java沒錯,我就在想lc的題目大部分input
都是head但是java的linkedlist(我記得他好像是double
linkedlist沒錯),是不是就是因為他封好了,所以還是
自己寫node比較適合,不然我也不知道他封好的狀況下
怎麼去做斷開link再接上的動作
API沒有給你操作Node,你只能自己實作
喔 原來是認真發問XD 好的 那我會認真回你 自己寫node比
較好 練leetcode就是在練功 自己弄node才知道什麼情況用
dummy head可以省多事
像是leetcode有些design特殊的資料結構,lru我還理解
有用,而且還可以去call linkedhashmap但是像是min st
ack max stack這種,各位前輩有用到過嗎?
基本上,有些題目出出來真的就是給你練功用的 比方說LRU,我記得Java某一個API就有內建的功能了 所以工作上確實是不會還要自己寫(俗稱造輪子) 但如果你能寫出來,你會對List指標操作有更深一層瞭解 重點就是工作上遇到的東西不會永遠都用基本API來解 如果你對這些基本操作理解很深,你就有辦法自己寫一個針對場景客製化的資結或演算法 這也是我從不覺得刷題無用的原因XDD
※ 編輯: fshfsh (123.193.252.168 臺灣), 10/06/2022 12:57:13這樣對你寫tree也有幫助 tree實務上用很廣哦 tree相關演
算法還有DFS/BFS也很廣 各個環環相扣 你終究要自己用nod
e寫tree的 所以先用node寫list吧
嗯嗯 100%同意 Tree真的很好用 DFS/BFS都有用到
其實搜尋也不是典型的 trie 了,而是為了省記憶體改用
FST ,先用 FST 找到詞的 index 位置再去找詞。
那些 leetcode 的資料結構頂多算是常識,實務上會有更多
考量如記憶體/或是在 disk 的 index 結構、
是否 immutable 、cpu overhead等。實務上需要的不是你是
否馬上知道要用什麼,而是你能不能做好的 research 找到
最好的演算法
那些知識是在 research 的同時, 用來判斷適用性跟文章有沒
唬爛的…我想 n 想問的是實務上會是要自己寫 node 還是怎樣
,那個要從實務面上評估需不需要調整;如果你想要直接訪問
操作封裝好的 LinkedList 上 Node 的話,是不建議的,因為
實務上我是都用lib list(挖鼻孔)
tree的話我知道mysql底層是b+ tree,然後霍夫曼編碼也
跟二元樹有關,另外inordertravesal也可以順序印出資
料,還有什麼場景適合自己刻tree嗎?以前有個物流前
輩說過他用了一堆tree,但他說他不想講太多,我google
搜尋 binary tree real world example也沒發現什麼,
再問問各位前輩了
他是 private 的,或許可以透過 reflect 魔改(?),但這
樣就會打破他的權限,不太安全
感謝原Po回答,謝謝
實務上如果你越接近開發 infra 才會更容易開發演算法,但
缺很少,別練了一堆結果去投 web api 的缺
笑死,不過現在很多前端都要問演算法資結了
※ 編輯: fshfsh (123.193.252.168 臺灣), 10/06/2022 13:02:23我發現原Po好像就是我提到的倉儲物流前輩,不好意思@@
你誤會了吧,我不認識你啊XDD
我是覺得前端也該問啦,有些網站一開起來風扇就在那轉不停
,開發者工具打開一看,做個排序寫了好幾層迴圈、不然就是
一直打 API 死循環的…
覺得用 ArrayList 也一樣,只是要多維護 head index
還比 LinkedList 少存幾百萬個 next pointer
(指上面雞排例子)
你講的沒錯,但前提是傳入的參數 以Leetcode來說,傳入的參數是不計入空間複雜度運算的,只計算「額外」的空間使用 (其實想想也很合理,要是題目傳參都直接 memory leak,那題目本身就不成立了) 那麼端看你參數傳入的型態,看你是像題目一樣傳入3個雞排List來排序,每個List各100萬雞排 還是照你說的,傳入一個300萬元素的ArrayList,以及傳入k個index 如果是後者,一樣也可以用PriorityQueue的方式來處理 差別就在PQ存入改成index指向ArrayList,因為ArrayList用index取值時間複雜度O(1),所以沒有問題 照理說,你這樣處理確實少了pointer 但我很難想像真實場景會把k個雞排廠排成一個ArrayList來傳 畢竟假設雞排廠要升級成一個物件,上面要加屬性了,這個結構會完全失效 所以我可能會先去和傳給我的人溝通叫他麥鬧XDD
不過雞排攤實體空間限制應該無法一次放幾百萬片雞排還是
得拆成N萬個冷凍櫃
嗯。。Leetcode還有題目是小朋友分糖果,小朋友的數量限制最大是一億XDD
※ 編輯: fshfsh (123.193.252.168 臺灣), 10/06/2022 17:05:26tree的話 看過用heap去做timer
每個事件設到期時間 根據時間sort
底下掛一堆事件這樣
我只有一開始工作才一直用ArrayList 而且也稍微會考
慮應用情境 除非一直以來都是使用別人的lib/框架 否
則要比較好的完成事情肯定會愈來愈深入
這些東西不一定刷題才會有 當然你說提早知道如何解刷
題是有幫助的 但多半都是應用不到 而且應用場景沒連
結到你也不一定想得出來可以用某某方式解
算是蠻認同實踐才是檢驗真理的唯一標準
而且很多內部功能都可以自己實現
推前端考資結,之前寫資料視覺化用 DFS 解環,然後副產物
(鄰接矩陣)交給下一 phase 算排位,還好小時候刷過 UVa
一億...應該分散在多個城市,變發糖員旅行問題 (無誤)
說實在 這種二元辯論真的沒什麼意義
資策會付錢讓你去美國念博士回來還不用綁約可以直接跳槽
不是很棒嗎?
資策會本來定位不就這樣?
sort 3百萬?現在電腦 sort 1億筆資料也在瞬間而已。
有時笨方法不笨因為電腦太快了。
嗯嗯 好有道理 看來各大院校的資工系可以刪掉演算法和資結的課程了 反正電腦越來越快,我寫10層巢狀迴圈總能解決問題吧~ 看來我只要會寫迴圈和if就能進Google了呢
sort 1億筆資料也在瞬間阿 XD 唬爛不打草稿 你的電腦一
整套/整批下來要多少錢 才能在不用特殊演算法的情況下
瞬間sort完1億筆data?
感謝分享
那個ID就不用跟他認真了
刷題的至少會 BFS/DFS,實務上很多東西都要碰到 tree
然後一堆天才在那邊亂寫ㄏㄏ
以實務來看,雞排在放入時排序就好了吧
把off line時間考慮進去,就不用太高深的演算法了
一億筆資料在用n^2排序的做法下要跑一整年欸
量子電腦啦><
看工作需求程度 有些dp寫起來就是簡單方便快 分支少
前提是你得先懂這個算法
就推以資策會為恥這句
量子電腦XDDD
發哥也有在研究量子運算 有興趣的博士可以去應徵
而且不用刷題
刷題很有趣欸 現在看到程式碼都會想降低複雜度
前端很多連雙for loop寫不出來 或Map/Set不會用 都算了
fizzbuzz都寫錯
這種的就不要說考這個有什麼用了吧...
一億筆資料只要瞬間 太猛了 我想要那樣的電腦
量子電腦XD
團隊看照片年輕的很?我在電梯遇到的FTE怎麼看起來
都4、50歲
資策會出來真的強的能用的少數,不要誤導大家...
重點不在於你在工作中會不會開發演算法 而是在於程式
語言都幫你包裝好的API 你有沒有這個知識判斷使用哪
樣的資料結構跟算法對效能比較好 如果你連這些基礎知
識都不知道要怎麼樣優化效能?
4
我是真的覺得 刷題這種東西還是很看領域 現在工作是做cloud infrastructure network 一年 沒真的用過什麼困難演算法 頂多實作bitmap tree binary tree linked list這種程度而? 更常用到的是對kernel的理解 能不能對runtime process做效能分析去改善自己的程式(譬 如cache miss) 對multi thread lock或sync的取捨 對network的理解度(不是只是知道tc15
我曾經被某個在上海的Google HR主管勾搭過問說要不要台灣的L6機會 深入了解了一下就拒絕了, 拒絕之後就聊了聊天吧 聊到刷題這件事, 他說, 基本上, 所有層級的Google面試流程都是要刷題的 無論你是L6, L7 (L8或以上我不知道呀) 我說: 你這根本狗屁吧?真的有L6能力的技術主管平常忙都忙死了, 誰還和你練刷題?12
其實很簡單 那些大公司(FAANG等等)他們在意的是減少 false positive 也就是不小心找到廢的人 畢竟工程師很貴 他們不在意因為考演算法題 不小心刷掉其實很強但只是不會寫題的(或是自稱) 畢竟公司那麼有名 不怕找不到人7
刷題強 實務經驗強 -> 內卷勝利者到哪都能找到好工作 最多抱怨一下"Algorithm 101的 東西還要考"? 刷題強 實務經驗弱 -> 通常很喜歡現在風氣,人手一本cracking coding interview。只 要準備leetcode就能進大廠拿高薪。把刷題當作求職準備,就像面試要穿西裝一樣,沒 什麼可抱怨的。4
其實考那些演算法小題目原本是很有鑑別力 但自從Leetcode這種面試題庫網站網站出來後 就從智力測驗變成記憶力測驗 當初這種考試是希望找到臨場想就能15分鐘想出最佳演算法 實作全無失誤 也考慮所有邊際輸入的真強者24
現實生活中也不少人用不到微積分,你看 看有多少大專院校科系把它列為基礎必修 科目? 我也同意絕大多數的白板面試考題,你在 現實開發場景中幾乎遇不到一模一樣的題7
看了大家吵成這樣那要不要全部都考? 例如: 第一輪:線上考試 LC medium 兩題 90分鐘 第二輪:主管面試談經驗 第三輪:考實做 例如工作內容是backend那就直接給CSV然後要做出一個server端 第四輪:考systems design17
我不曉得怎樣叫做實務好啦 但我自認家父應該是不錯的 從30年前ATM 時代到現在Ethernet/2G~4G的L2L3 network protocol 幾乎常見的每一個都會 實作也可以自己做出可上市的產品 20多年前也裸去過矽谷待過半年(家族問題就回來了)20
說到這個我想到一件事,我有個朋友高中時 期成績很棒,還拿過國際地理奧林匹亞競賽 的獎牌。 然而這個競賽和其他國際奧林匹亞科學競賽 有些不同,不同點在於:4
這個問題其實可以拆解成幾個小問題 1.面試要不要考試? 我個人認為要,而且非常重要 2.面試要考甚麼? 2.1人少:
35
[求助] 是我的問題嗎?跟男友交往半年多 我24 在工作了 男友22 大學生 事情就發生在剛剛 今天上班很累44
[討論] 我就問,刷題強者的實務表現?最近一次面到刷題的公司...感覺已經走火入魔了, 考試考到難的程度,比 Google 還難 去年就面過一次,當時考題 Easy ~ Medium 隔了一年還在找人,人資看我資歷主動邀我面試, 卻考得更難...有真心要找可以解決問題的人嗎?41
Re: [討論] 我就問,刷題強者的實務表現?這幾年我觀察下來的結論是怎樣都會有人叫 看學歷:「阿幹難道台大實作能力就強嗎」 看刷題:「阿幹難道刷題實作能力就強嗎」 考實作 回家寫:「阿幹程式要我帶回家寫 有夠浪費時間 是不是把我當白工」 當場寫:「阿幹考這個太偏 誰出社會還在自己刻」10
Re: [討論] 我就問,刷題強者的實務表現?各位同仁大家好,小弟是人稱慣老闆的阿肥 阿肥我非常贊同刷題這件事 已有很多賢達文章回覆,但多為受雇方或求職者的角度, 阿肥趁此以另一方的角度來闡述刷題這件事 不只要刷題,而且要9
Re: [討論] 我就問,刷題強者的實務表現?哥 看了這月經文 覺得搖搖頭 刷題又不是說考你什麼ACM, IOI的題目 頂多leetcode的medium, medium hard而已8
Re: [討論] 我就問,刷題強者的實務表現?先上人權。證明一下我可以刷"Hard" ---------------- 這個禮拜剛好看到gjk(Gilbert–Johnson–Keerthi)上news ycombinator. gjk是我以前寫3d的時候,跳過的一個演算法,因為複雜。剛好這禮拜有空,就好好研究一下。 現在google "gjk"出來的大概都是用 方法。 雖然casey的方法對2d很棒,但他宣稱可延伸到3d其實是錯的。7
Re: [討論] 我就問,刷題強者的實務表現?不知道您是面試什麼產業、什麼規模的公司、什麼職位 我建議還是講的具體一點,大家比較有討論空間 : 我就不指名道姓了 : 大概是被刷題進去的人佔到主管位, 就我經驗大部分公司,你去面主管位置的職缺