leecode | 保龄球获胜者

两选手,进行保龄球比赛。
得分规则:前两句内,有一次以上得10分,该局得分 乘2
最后比较两选手得分情况,
选手1得分 > 选手2 return 1
选手1得分 < 选手2 return 2
选手1得分 = 选手2 return 0

//shi山一样的代码
class Solution {
public:
    int isWinner(vector& player1, vector& 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;
        
    }
};

###################################################
后面再优化。

你可能感兴趣的:(综合部,linux,C++,算法)