思路:遍历俩个数组统计得分,若前俩回合内有达到十分则此次得分翻倍,最后比较得分返回赢家
代码:
class Solution {
public:
int isWinner(vector<int>& player1, vector<int>& player2) {
int count1 = 0,count2 = 0,len1 = player1.size(),len2 = player2.size(); //count1统计玩家一得分,count2统计玩家2得分
for(int i = 0; len1 > len2? i < len1: i < len2; i++){ //谁长遍历谁
if(i < len1){ //若玩家一当前回合有得分则添加
count1 += player1[i];
if(i - 1 >= 0 && player1[i-1] == 10 || i - 2 >= 0 &&player1[i-2] == 10) //若玩家一前俩回合有得过十分则此次得分翻倍
count1 += player1[i];
}
if(i < len2){ //玩家二同理
count2 += player2[i];
if(i - 1 >= 0 && player2[i-1] == 10 || i - 2 >= 0 &&player2[i-2] == 10)
count2 += player2[i];
}
}
//返回赢家
return count1 == count2 ? 0 : count1 > count2 ? 1 : 2;
}
};