两选手,进行保龄球比赛。
得分规则:前两句内,有一次以上得10分,该局得分 乘2
最后比较两选手得分情况,
选手1得分 > 选手2 return 1
选手1得分 < 选手2 return 2
选手1得分 = 选手2 return 0
//shi山一样的代码
class Solution {
public:
int isWinner(vector<int>& player1, vector<int>& player2) {
int ans1 = 0, ans2 = 0;
int res = -1;
ans1 += player1[0];
ans2 += player2[0];
if(player1.size() == 1){
if(ans1 > ans2){
res = 1;
}else if(ans1 < ans2){
res = 2;
}else{
res = 0;
}
return res;
}
if(player1[0] == 10){
ans1 += 2*player1[1];
}else{
ans1 += player1[1];
}
if(player2[0] == 10){
ans2 += 2*player2[1];
}else{
ans2 += player2[1];
}
if(player1.size() == 2){
if(ans1 > ans2){
res = 1;
}else if(ans1 < ans2){
res = 2;
}else{
res = 0;
}
return res;
}
for(int i = 2; i < player1.size(); ++i){
if(player1[i -1] == 10 || player1[i - 2]== 10){
ans1 += 2*player1[i];
}else{
ans1 += player1[i];
}
}
for(int i = 2; i < player1.size(); ++i){
if(player2[i -1] == 10 || player2[i - 2]== 10){
ans2 += 2*player2[i];
}else{
ans2 += player2[i];
}
}
if(ans1 > ans2){
res = 1;
}else if(ans1 < ans2){
res = 2;
}else{
res = 0;
}
return res;
}
};
###################################################
后面再优化。