面試失敗之24點演算法

來源:互聯網
上載者:User

  周一風塵僕僕(上午6點抵達成都)的去參加了凡客成都研發中心的面試,雖然經曆一夜的折騰讓我感覺頭腦很不清醒,不過這種面試狀態也不錯,能讓我深刻體驗一下在不清醒狀態下進行的思考和回答問題。午飯過後便出了門,習慣了不堵車,突然覺得成都的交通真的很擁堵。到達凡客成都研發中心填完表後等了大概10多分鐘,面試官把我帶進會議室,開始了面試。面試過程為由3位技術大牛面試官輪番面試,他們問了很多有意義的技術和管理類的相關面試問題,我含含糊糊的回答了,最終還是disqualified。不過我很感謝面試官們能告訴我,在我身上存在不足。我覺得每一次的面試都能讓我成長一次,希望自己一次一次生長後能使我變的更強大。
話說回來,其中一位面試官問了一個簡單的演算法問題,如:“1~9的隨機取出4個數組成24,如果可以組成則返回true,反之返回false”。這個題面試中遇到了無數次,網上也有很多思路,哎!一直沒有去看過和想過。比划了半天也沒有什麼結果。回來後趁著上班間隙,自己思考了一下,為了給自己加深印象,寫了一段代碼(見附錄,學習和交流)進行練習。
  我的思路是:

  逐個遞迴的方式(到處都是遞迴,我只是寫法變了一下),。先把數組中的數逐個取出來,然後其餘的組成新數組。取出來數於24進行加減乘除運算,以後統稱為calc()(如果不能整除則返回),再把新數組中的所有數進行calc()將得到的結果進行對比,如果成功則停止運算返回true,不成功則,再從逐個取出新數組的數,其餘的又組成另一個新數組,反覆遞迴後得到結果。
  由於我才疏學淺加上最近又學習了《The ThoughtWorks Anthology: Essay on Software Technology and Innovation》,自己摸索著寫出來的東西請勿見笑,希望各位大牛在閑暇之餘能幫我改進,我在此萬分謝謝。附件:演算法代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.