【快乐水题】1688. 比赛中的配对次数
生活随笔
收集整理的這篇文章主要介紹了
【快乐水题】1688. 比赛中的配对次数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原題:
力扣鏈接:1688. 比賽中的配對次數
題目簡述:
給你一個整數 n ,表示比賽中的隊伍數。比賽遵循一種獨特的賽制:
如果當前隊伍數是 偶數 ,那么每支隊伍都會與另一支隊伍配對。總共進行 n / 2 場比賽,且產生 n / 2 支隊伍進入下一輪。
如果當前隊伍數為 奇數 ,那么將會隨機輪空并晉級一支隊伍,其余的隊伍配對。總共進行 (n - 1) / 2 場比賽,且產生 (n - 1) / 2 + 1 支隊伍進入下一輪。
返回在比賽中進行的配對次數,直到決出獲勝隊伍為止。
解題思路:
1.根據題意,提煉出奇偶數的兩個分支,計算剩余隊數與累計配對數;
2.然后就是遞歸調用;
3.填寫退出條件(n==1)
4.over;
C++代碼:
class Solution { public:int nPairs = 0;int numberOfMatches(int n) {if(n == 1){return nPairs;}if(n%2 == 0){nPairs += n/2;n = n/2;}else{nPairs += (n - 1)/2;n = (n-1)/2+1;} numberOfMatches(n);return nPairs;} };力扣結果展示:
總結
以上是生活随笔為你收集整理的【快乐水题】1688. 比赛中的配对次数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成年人不懂这些道理,会吃很多亏
- 下一篇: 【快乐水题】2000. 反转单词前缀