544 輸出比賽匹配對

2021-10-10 01:31:40 字數 1267 閱讀 8472

題目描述:

在 nba 季後賽中,我們總是安排較強的隊伍對戰較弱的隊伍,例如用排名第 1 的隊伍和第 n 的隊伍對決,這是乙個可以讓比賽更加有趣的好策略。現在,給你 n 支隊伍,你需要以字串格式輸出它們的 最終 比賽配對。

n 支隊伍按從 1 到 n 的正整數格式給出,分別代表它們的初始排名(排名 1 最強,排名 n 最弱)。我們用括號(』(』, 『)』)和逗號(』,』)來表示匹配對——括號(』(』, 『)』)表示匹配,逗號(』,』)來用於分割。 在每一輪的匹配過程中,你都需要遵循將強隊與弱隊配對的原則。

示例 1:

輸入: 2

輸出: (1,2)

解析:初始地,我們有隊1和隊2兩支隊伍,按照1,2排列。

因此 用 『(』, 『)』 和 ','來將隊1和隊2進行配對,得到最終答案。

示例 2:

輸入: 4

輸出: ((1,4),(2,3))

解析:在第一輪,我們將隊伍1和4配對,2和3配對,以滿足將強隊和弱隊搭配的效果。得到(1,4),(2,3).

在第二輪,(1,4) 和 (2,3) 的贏家需要進行比賽以確定最終贏家,因此需要再在外面加一層括號。

於是最終答案是((1,4),(2,3))。

示例 3:

輸入: 8

輸出: (((1,8),(4,5)),((2,7),(3,6)))

解析:第一輪: (1,8),(2,7),(3,6),(4,5)

第二輪: ((1,8),(4,5)),((2,7),(3,6))

第三輪 (((1,8),(4,5)),((2,7),(3,6)))

由於第三輪會決出最終勝者,故輸出答案為(((1,8),(4,5)),((2,7),(3,6)))。

注意:

n 的範圍是 [2, 212].

保證 n 可以寫成 2k 的形式,其中 k 是正整數。

方法1:

主要思路:

(1)把每輪的字串元素,根據最強和最弱的規則進行組合;

class

solution

int left,right;

while

(n>1)

//找下一輪的元素的數量

n>>=1;

}//返回最終的組合

return strs[0]

;}};

1688 比賽中的配對次數

題目描述 給你乙個整數 n 表示比賽中的隊伍數。比賽遵循一種獨特的賽制 如果當前隊伍數是 偶數 那麼每支隊伍都會與另一支隊伍配對。總共進行 n 2 場比賽,且產生 n 2 支隊伍進入下一輪。如果當前隊伍數為 奇數 那麼將會隨機輪空並晉級一支隊伍,其餘的隊伍配對。總共進行 n 1 2 場比賽,且產生 ...

1688 比賽中的配對次數

給你乙個整數 n 表示比賽中的隊伍數。比賽遵循一種獨特的賽制 如果當前隊伍數是 偶數 那麼每支隊伍都會與另一支隊伍配對。總共進行 n 2 場比賽,且產生 n 2 支隊伍進入下一輪。如果當前隊伍數為 奇數 那麼將會隨機輪空並晉級一支隊伍,其餘的隊伍配對。總共進行 n 1 2 場比賽,且產生 n 1 2...

20 12 21 1688 比賽中的配對次數

給你乙個整數 n 表示比賽中的隊伍數。比賽遵循一種獨特的賽制 如果當前隊伍數是 偶數 那麼每支隊伍都會與另一支隊伍配對。總共進行 n 2 場比賽,且產生 n 2 支隊伍進入下一輪。如果當前隊伍數為 奇數 那麼將會隨機輪空並晉級一支隊伍,其餘的隊伍配對。總共進行 n 1 2 場比賽,且產生 n 1 2...