給定一個N級人(這是由數組int [] a)表示的,其中每個人都與其他人玩遊戲。每場比賽只涉及2名球員。所以對於N人來說,總共有NC2比賽。列出錦標賽中的球員,讓每名球員贏得下一場比賽?
結果與你同在所有的遊戲。你必須安排每個人排隊,條件是,a [i]應該贏得與[i-1]的比賽。這對我的所有價值都是如此。
我們不需要關心[i]和[i-2]之間的結果。 a [i]可能以[i-2]贏得或輸掉比賽。
我的做法(我用回溯來解決這個問題):
- 對於每個人,我們將保持誰與人贏得了比賽的人的名單。
- 將創建一個新的結果數組(長度等於總玩家數)。
- 第一個位置被每個人迭代填滿。
- 結果數組中的下一個位置填滿了與前一個人贏得比賽的人。通過遍歷該數組,可以從前一個人的相應獲獎名單中選出此人。
以上解決方案將嘗試每個路徑使用遞歸方法。沒有更好的算法嗎?