Count of Matches in Tournament
给一个由n个team组成的比赛, 如果n是偶数, 则进行n/2个比赛, 如果n是奇数则进行(n – 1)/2 +1个比赛,问一共要有多少比赛才能决定胜者.
1 2 3 4 5 6 7 |
class Solution { public int numberOfMatches(int n) { if(n == 1) return 0; return n % 2 == 0? numberOfMatches(n / 2) + (n / 2) : numberOfMatches(((n - 1) / 2) + 1) + ((n - 1) / 2); } } |