面試問題:發一個隨機紅包,100塊錢給10我的。每一個人最多12塊錢,最少6塊錢。怎麼分?

之前想過一個相似問題,就是沒有每一個人最大、最小的得錢數的限制,之前的問題能夠很好用隨機數解決。
因而這個問題也被之前的思想帶坑裏了,把突破口徹底放在瞭如何處理每一個人的隨機數上。
因而在面試時間就沒有解決這個問題,直到面試結束本身安靜下來,仔細想一想,發現思路錯了。

我認爲正確的思路是:

  1. 每一個人先得6塊錢,這樣剩下40塊錢,以後每次拿出一塊錢,隨機分配給一我的,若是某我的的錢數達到了上限,那麼這我的下次就沒有了再獲得錢的資格了。這樣直到剩下錢都分配完。面試

  2. 固然在接口的實際處理上能夠作些優化,例如剩下的錢每次隨機分配的錢能夠是隨機的(固然這個隨機要作一些限制,以避免一下就分配超額了),而後若是某我的錢+此次隨機分配的錢>每一個人的上限,那麼他就沒有資格獲得這個錢了。優化

  3. 隨機分配也好實現,先算有幾我的有資格獲得這筆錢,隨即一個數,決定給第幾個符合資格的人。code

自我反思:

  • 開始的思路跑偏了,後來沒有轉過來。何時該繼續深刻、何時該轉變思路?該如何抉擇,是很重要的事。說到底,仍是沒有快速想清問題的狀態,若是想清了也就知道開始的思路有問題,就知道該換換突破口了。接口

  • 在與面試交談中,明顯有些緊張。這更加影響了個人思考。無論外界如何,一我的的大腦永遠都該是清醒的。這是一種很重要的能力,努力修行吧。隨機數

相關文章
相關標籤/搜索