题目:
分析:
完全没思路, 直接看题解!
我的顾虑,如果0 2 3 9 4 5 6 7 8 1 这样会把2换的更远
??答案有问题吧!
。。。。人家问的是交换次数,而不是交换的距离。
那就对了,A,B 假设B去交换,交换后使得A成对,若B也成对,则交换A还是B无所谓,若B不成对,则若去交换A使得B成对时,A也不成对,且不论A交换还是B交换,结果都是成了一对。A,B a,x 。。。。。。b,y
韩式有点含糊。
不是自己想出来的,总是感觉含糊。
//预处理成 每对情侣 数字相同的情况。
for(int i=0;i<row.size();i++) row[i]=row[i]/2;
int i=0;
int all=0;
for(;i<row.size()-5;i+=2)
{
if(row[i]==row[i+1])
{
continue;
}
int j=i+1;
while(1)
{
if(row[j]==row[i])
{
row[j]=row[i+1];
all++;
break;
}
j++;
}
}
if(row[row.size()-1]!=row[row.size()-2]) all++;
return all;