大佬,最后一道题这么做可以吗?很多样例做了测试,和你的答案一样。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
vector<int>g{1,1,1,0};
vector<int>j{1,1,0,0};
int sg = 1,sj = 1,sx = 0;
int n = g.size();
for(int i=1; i<g.size(); i++)
{
int tmpg = sg;
int tmpj = sj;
int tmpx = sx;
if(g[i] && j[i])
{
sg = max(tmpx,tmpj) + 1;
sj = max(tmpx,tmpg) + 1;
}else if(!g[i] && !j[i]){
if(tmpg == tmpj)
{
sx = (tmpg + tmpj) / 2;
}else{
sx = max(tmpg,tmpj);
}
}else if(g[i]){
sg = max(tmpx,tmpj) + 1;
}else{
sj = max(tmpx,tmpg) + 1;
}
}
cout<<n - max(max(sg,sx),sj);
return 0;
}