题目大意:给一些夫妇排座位,让每对夫妇都能坐在一起,给出一个一维数组表示他们的初始座位,row[i]表示坐在i位置的人的序号,i和人的序号都从0起,01是一对夫妇,23是一对夫妇...
代码:
class Solution {
public:
int minSwapsCouples(vector<int>& row) {
int sum = 0;
for(int i = 0;i < row.size();i++){
int mate; //mate是i位置人的配偶序号
if(row[i] % 2 == 0) mate = row[i] + 1;
else mate = row[i] - 1;
for(int j = i + 1;j < row.size();j++){
if(row[j] == mate && j != (i + 1)){ //配偶不在i旁边
swap(row[j],row[i+1]);
sum++;
break;
}
}
}
return sum;
}
};