标签:size vector 索引 最大 计算 div oid wap tor
1.记录索引交换
class Solution { public: int minSwapsCouples(vector<int>& row) { int len=row.size(); vector<int> idx(len,-1); int ret=0; for(int i=0;i<len;++i){ int tmp=conv(row[i]); //cout<<"i:"<<i<<endl; if(idx[tmp]!=-1){ //cout<<2<<endl; int tmp_idx=conv(idx[tmp]); if(tmp_idx!=i){ //cout<<3<<endl; ++ret; swap(tmp_idx,i,row); idx[row[i]]=i; //for(int i:row)cout<<"row:"<<i<<endl; } }else{ //cout<<1<<endl; idx[row[i]]=i; } } return ret; } int conv(int num){ return num%2==0?num+1:num-1; } void swap(int a,int b,vector<int>& row){ row[a]=row[a]^row[b]; row[b]=row[a]^row[b]; row[a]=row[a]^row[b]; } };
2.计算图中环的个数和成对的边个数。最大值2n,总量为n,每个不用交换的边-1,每个环-1
标签:size vector 索引 最大 计算 div oid wap tor
原文地址:https://www.cnblogs.com/Babylon/p/14682371.html