给你两个下标从?0?开始的整数数组?
player1
?和?player2
?,分别表示玩家 1 和玩家 2 击中的瓶数。保龄球比赛由?
n
?轮组成,每轮的瓶数恰好为?10
?。假设玩家在第?
i
?轮中击中?xi
?个瓶子。玩家第?i
?轮的价值为:
- 如果玩家在该轮的前两轮的任何一轮中击中了?
10
?个瓶子,则为?2xi
?。- 否则,为?
xi
?。玩家的得分是其?
n
?轮价值的总和。返回
- 如果玩家 1 的得分高于玩家 2 的得分,则为?
1
?;- 如果玩家 2 的得分高于玩家 1 的得分,则为?
2
?;- 如果平局,则为?
0
?。
class Solution {
public int isWinner(int[] player1, int[] player2) {
List<Integer> data = new ArrayList<>();
int sum = 0;
for(int num : player1){
if(data.contains(10)){
sum += num * 2;
} else {
sum += num;
}
if(data.size() == 2){
data.remove(0);
}
data.add(num);
}
data = new ArrayList<>();
for(int num : player2){
if(data.contains(10)){
sum -= num * 2;
} else {
sum -= num;
}
if(data.size() == 2){
data.remove(0);
}
data.add(num);
}
if(sum > 0){
return 1;
} else if(sum < 0){
return 2;
} else {
return 0;
}
}
}