题意 给两个数组,假如数组中一个数的前两个数当中有一个数是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:等期末结束再去看看有没有其他的思路
浙公网安备 33010602011771号