题意 给两个数组,假如数组中一个数的前两个数当中有一个数是10,那么当前的数要乘二,最后两个数组进行比较,假如数组和相同,那么结果是0,,第一个数组大,那么结果是1,第二个数组大,那么结果是2

思路:
根据题意模拟,不过要注意数组只有一个数的情况

代码:

class Solution {
public:
    int isWinner(vector<int>& a1, vector<int>& a2) {
        int sum1=0,cf=0;
        int sum2=0;
        if(a1.size()==1)
        {
            if(a1[0]>a2[0])
        cf=1;
         if(a1[0]<a2[0])
       cf=2;
       return cf;
        }
        for(int i=2;i<a1.size();i++)
        {
            if(a1[i-1]==10||a1[i-2]==10)
          sum1+=a1[i]*2;
          else sum1+=a1[i];
        }
        if(a1[0]==10)
        {
            sum1+=a1[0];
            sum1+=a1[1]*2;
        }else{
           
            sum1+=a1[0];
            sum1+=a1[1];
        }
         for(int i=2;i<a2.size();i++)
        {
            if(a2[i-1]==10||a2[i-2]==10)
          sum2+=a2[i]*2;
          else sum2+=a2[i];
        }
        if(a2[0]==10)
        {
            sum2+=a2[0];
            sum2+=a2[1]*2;
        }else{
           
            sum2+=a2[0];
            sum2+=a2[1];
        }
        if(sum1>sum2)
        cf=1;
         if(sum1<sum2)
       cf=2;
       return cf;
    }
};
PS:等期末结束再去看看有没有其他的思路
posted on 2023-12-27 08:53  塔罗-太阳  阅读(14)  评论(0)    收藏  举报