看板 Soft_Job 關於我們 聯絡資訊
※ 引述《pandaforme (建 建)》之銘言: : PO這篇文章的本意是想討論 公司出了靈活的面試題目來測試面試者 : 但是面試方法竟然如此的封閉 身為被面試者應該如何應對 : 假設某一家公司拿指考的數學題目來考面試者 : 面試者分別有 : 1. 普通的一般人 (大學以上的學歷) : 2. 準備要參加指考的應屆考生 : 3. 對數學非常有天分的神人 : 考試時間為一小時 考完後 單純依據分數來判定有沒有入取 : 一般人在有限時間且缺乏練習的情況下 考得贏第2和第3類的人嗎? : 之前遇到幾個公司面試就是這樣的做法... : 考完就考券收一收 也沒有問你怎麼解 請等待回應 : 就算有問 面試官心中都有一定的成見 : 真的是自己能力不足 被問到釘在白板上也認了... : 可是能這樣的機會也沒有 : 公司的面試方式似乎卻在走回頭路 只看你的筆試成績 : 卻一點都不在意你對問題的解決方式和想法 : 既然有版友想看題目 那我就PO出來吧 : http://tinyurl.com/3srmqfc 並且請考慮當N很大的時候 : 請在半小時內想出解法並且使用你拿手的程式語言實作它 : 我是第一次看到這個題目 : 當下判斷我不可能在半小時內想出最佳解且要考慮當N很大的時候 : 所以就採用硬幹法一一去算每個元素出現的次數 : 想好並且寫完CODE半小時也差不多過了 : 面試官就收回考券 說:等我們的技術長看過後再決定是否有第二次面試 : 想當然結果就是謝謝 再連絡... : 嗯 : 這樣的陣亡方式 感覺有點死的不明不白 : 似乎這樣的面試方式 在浪費彼此的時間... : 換個角度想 只能有緣再見面了~ 這題要找最佳解還挺難的 我的話不會全部的數都計算次數 以下提供部分的寫法 ArrayList<int> candArray= new ArrayList<int>(); boolean flag; for(int i =0;i<a.length();i+=2){ if(a[i]==a[i++]){ flag=true; for(int temp : candArray){ if((a[i]==temp){ flag=false; break; } } if(flag){ candArray.add(a[i]); } } } if(candArray.size()==0){ return -1; } else if(candArray.size()==1){ return candArray.get(0); } //未完 我的能力只有到此為止 candArray.size()>1的後續處理還沒想到最佳解 但是只計算candArray裡的值,怎麼都比計算全部要好吧XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.244.184
thinkniht:我想到更好的寫法了...不過...現在電腦沒IDE 08/01 22:49
thinkniht:很懶得寫(還要排版Orz) 08/01 22:49
lovdkkkk:作弊解 Moore’s Voting Algorithm 08/01 22:51
※ 編輯: thinkniht 來自: 114.42.244.184 (08/01 23:38)
leicheong:樓上的方法不錯, 沒想到啦... :P 08/01 23:37
leicheong:先找出最多的, 再回頭看是不是過半了. 不是就回傳-1 08/01 23:39
※ 編輯: thinkniht 來自: 114.42.244.184 (08/01 23:40)
leicheong:當count掉到負數reset時是算1不是0吧? 08/01 23:41
thinkniht:我發現我一開始寫的就錯...Orz 08/01 23:49
※ 編輯: thinkniht 來自: 114.42.244.184 (08/01 23:59) ※ 編輯: thinkniht 來自: 114.42.244.184 (08/02 00:03) 改了好幾次 發現都錯(遮臉) ※ 編輯: thinkniht 來自: 114.42.244.184 (08/02 00:05)
iceonly:懶人如我只會用MAP 囧 08/02 00:55
thinkniht:我對Map不太熟(遮臉) 08/02 00:57