链接:765情侣牵手
题目描述:
思路:(2k,2k+1)为一对,假定左边的都不变,以左边的为基准,判断右边的是否与左边匹配,若匹配则检查下一对,不匹配则向后查找,找到后交换位置,以此类推。
class Solution {
public int minSwapsCouples(int[] row) {
int i ,j ,res, count=0;
for (i=0;i< row.length;i+=2){
if (row[i]%2==0){
if (row[i]+1==row[i+1]){
continue;
}
else {
for (j=i+2;j< row.length;j++){
if (row[j]==row[i]+1){
res = row[i+1];
row[i+1] = row[j];
row[j]=res;
count++;
}
}
}
}
else {
if (row[i]-1==row[i+1]){
continue;
}
else {
for (j=i+2;j< row.length;j++){
if (row[j]==row[i]-1){
res = row[i+1];
row[i+1] = row[j];
row[j]=res;
count++;
}
}
}
}
}
return count;
}
}