题目链接




Python3
方法: 模拟 ⟮O(n)、O(1)⟯
class Solution:
def isWinner(self, player1: List[int], player2: List[int]) -> int:
score1 = self.calScore(player1)
score2 = self.calScore(player2)
if score1 > score2:
return 1
elif score1 < score2:
return 2
else:
return 0
def calScore(self, player):
score = 0
for i, x in enumerate(player):
if i > 0 and player[i-1] == 10 or i > 1 and player[i-2] == 10:
score += 2 * x
else:
score += x
return score

C++
class Solution {
public:
int isWinner(vector<int>& player1, vector<int>& player2) {
int score1 = calScore(player1);
int score2 = calScore(player2);
if (score1 > score2)
return 1;
else if (score1 < score2)
return 2;
else{
return 0;
}
}
int calScore(vector<int> & player){
int score = 0;
for (int i = 0; i < player.size(); ++i){
if ((i > 0 && player[i-1] == 10) || (i > 1 && player[i-2] == 10)){
score += 2 * player[i];
}else{
score += player[i];
}
}
return score;
}
};