Re: [請益] 面試如果考coding可以這樣回答嗎?已刪文

看板Soft_Job (軟體人)作者 (DP)時間5年前 (2019/05/06 05:10), 5年前編輯推噓-1(4519)
留言28則, 13人參與, 5年前最新討論串7/10 (看更多)
※ 引述《WayneHong (韋恩)》之銘言: : 小弟即將出社會菜逼八一枚 : 因為軟體面試常常會遇到現場白紙或白板coding : 想請教各位前輩 : 如果遇到較複雜的問題 : 自己沒有把握用純代碼方式回答的話 : 可以把解題方法或思路寫下來當作替代方案嗎? : 就是會用到什麼算法、函式,邏輯大概是怎樣....之類 : 例如這個題目: : https://imgur.com/dAHI3Jq
: 標準答案應該是這樣: : https://imgur.com/MdnXLxg
: 如果我的回答是: : https://imgur.com/FKlAUZJ
: 如果這樣回答會不會被面試官ㄍㄧㄠˇ : 可能這個問題的回答是「要看人」 : 不過還是想問一下普遍人的看法 : 謝謝各位~ : ------------------------ : 留言中各位前輩的回答 : 我已經有得到想要的答案了 : 然後可能問了一個智障問題 : 不過在這被噓爆也比現實世界被當面幹好多了 : 總之謝謝大家的回答 : 然後這題leetcode官方的標準答案是以下這樣: : class Solution(object): :   def sortedSquares(self, A): :     return sorted(x*x for x in A) : 上面貼的那個範例解不是最好的 : 因為這題是滿久之前剛學Python的時候做的 : 雖然可以得出正確答案不過效率並不好 : 但後來也沒再去改了 抱歉其他篇的回覆恕刪, 根據我以前去面試的經驗, 通常應徵的時候都會問你擅長寫哪個語言吧, 接著會希望你使用你擅長的語言來寫,譬如叫你用python或C++表達, 即使你以這樣的方式回答,面試官通常也是會請你用你會的語言寫出來。 然而接下來是重點,當你寫出這個答案的時候(假設你寫的是上面所謂的標準答案) 面試官會問你:這樣的時間複雜度是多少呢?有沒有更快的做法呢? 這裡就是他想看你程度的地方了。 以這個例子為例,理論上直覺反應最簡單暴力解就是平方以後排序, 但通常最簡單直覺的解法都不是最佳解, 這題目顯然是可以O(N)解決, 直接O(N)找一次正負交錯點,再O(N)把兩個數列合併即可。 至少依我以前的經驗他們都是很希望看到你能想到「哪種程度」的做法, 同一個題目,O(N^4)是一個層級,O(N^3)一個層級,O(N^2)又是另一個等級, 這都是他們評量這個應徵者實力的參考依據。 至於如果會在原PO講的這種小地方就開幹的公司...... 我覺得沒錄取就算了,別在意。 ------------------------------------------------------- 以下附上code做參考,只是快速寫一下的小code,有錯請鞭小力一點QQ // input s[n] // find first non-negative for (i = 0; s[i] < 0 && i < n; ++i); //感謝版有指正邊界條件有錯,請不要直接抄code // first string is 0 to i-1, second is i to n-1 left = i - 1; right = i; ans_pos = 0; while (left >= 0 && right < n) { l = s[left]; r = s[right]; l = l * l; r = r * r; if (l < r) { ans[ans_pos++] = l; left--; } else { ans[ans_pos++] = r; right++; } } while(left >= 0) { temp = s[left--]; ans[ans_pos++] = temp * temp; } while(right < n) { temp = s[right++]; ans[ans_pos++] = temp * temp; } // output ans[ans_pos] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.120.153 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1557090648.A.50F.html

05/06 05:21, 5年前 , 1F
測資全都負數你就爆了
05/06 05:21, 1F
對耶,沒注意到,看來是因為測試時陣列後方預設全都是0所以沒出事 ※ 編輯: DarkPrincex (61.230.120.153), 05/06/2019 05:39:45

05/06 06:25, 5年前 , 2F
==還來啊
05/06 06:25, 2F

05/06 06:36, 5年前 , 3F
借標題問 寫一個錯的跟寫一個對的但時間複雜度較高
05/06 06:36, 3F

05/06 06:36, 5年前 , 4F
哪個比較會獲得面試官青睞
05/06 06:36, 4F

05/06 06:38, 5年前 , 5F
當然是寫對才重要,然後這系列可以停了吧
05/06 06:38, 5F

05/06 06:40, 5年前 , 6F
明明easy等級而已,leetcode上也一堆解法
05/06 06:40, 6F

05/06 07:55, 5年前 , 7F
到底是怎樣,本板每個出來秀的都是錯的XD
05/06 07:55, 7F

05/06 08:47, 5年前 , 8F
為什麼大家都錯,這樣怎麼年薪三百 XD
05/06 08:47, 8F

05/06 08:57, 5年前 , 9F
easy程度,一堆人為了炫技寫一堆錯的答案
05/06 08:57, 9F

05/06 09:08, 5年前 , 10F
這個版水準是怎樣.....
05/06 09:08, 10F

05/06 09:11, 5年前 , 11F
當然事都不錄取阿 時間複雜度高就是錯答案
05/06 09:11, 11F

05/06 09:11, 5年前 , 12F
更不用說寫錯的
05/06 09:11, 12F

05/06 09:13, 5年前 , 13F
哈哈,全負數就爆
05/06 09:13, 13F

05/06 09:17, 5年前 , 14F
我是覺得這種邊界條件不影響錄不錄取的標準
05/06 09:17, 14F

05/06 09:18, 5年前 , 15F
重點是你的想法,而尋找問題是與考官的互動之一
05/06 09:18, 15F

05/06 09:18, 5年前 , 16F
為什麼執著於先找正負交錯?從頭尾兩端往中間依平方值merge
05/06 09:18, 16F

05/06 09:20, 5年前 , 17F
回傳陣列由後往前存即可...
05/06 09:20, 17F

05/06 09:20, 5年前 , 18F
這作法也是正解之一,方法其實很多
05/06 09:20, 18F

05/06 09:21, 5年前 , 19F
就...解法之一而已,本來題目就不會有唯一解
05/06 09:21, 19F

05/06 09:21, 5年前 , 20F
在全負或全正情況下,這種做法也可維持一端不動,也不會出錯
05/06 09:21, 20F

05/06 09:23, 5年前 , 21F
977. Squares of a Sorted Array 拜託發文前看一下討論
05/06 09:23, 21F

05/06 09:24, 5年前 , 22F
大家用打字的都很會講 寫code就...
05/06 09:24, 22F

05/06 09:25, 5年前 , 23F
我不想因為這樣噓人,但是已經好幾篇了 真的夠了
05/06 09:25, 23F

05/06 09:27, 5年前 , 24F
那我幫樓上噓
05/06 09:27, 24F

05/06 09:28, 5年前 , 25F
囧 其實我只是因為前幾篇沒在討論面試官希望的優化過
05/06 09:28, 25F

05/06 09:28, 5年前 , 26F
程,所以提出來分享面試官詢問的過程,如果真的是覺
05/06 09:28, 26F

05/06 09:29, 5年前 , 27F
的系列文造成傷眼的話我自D讓版面乾淨好了
05/06 09:29, 27F
※ 編輯: DarkPrincex (61.230.120.153), 05/06/2019 09:39:25

05/06 09:37, 5年前 , 28F
呃,這種level的問題講原則就知道怎麼寫了吧...
05/06 09:37, 28F
我本來是的確只有要講原則啦...不過怕別人又說要給的code當參考... ※ 編輯: DarkPrincex (61.230.120.153), 05/06/2019 09:44:57
文章代碼(AID): #1Spr5OKF (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1Spr5OKF (Soft_Job)