首页 > 其他 > 详细

765. 情侣牵手

时间:2020-02-10 09:15:25      阅读:103      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 贪心算法(应该算吧),每次至少复合一对情侣

 1 class Solution {
 2 public:
 3     int minSwapsCouples(vector<int>& row) {
 4         if(row.empty()){return 0;}
 5         int n=row.size();
 6         vector<int> d(n,0);//d[i]表示i旁边坐的谁
 7         for(int i=0;i<n;++i){
 8             if(i&1){//座位奇数,(i-1,i)一个座
 9                 d[row[i]]=row[i-1];//i旁边的人是i-1
10                 d[row[i-1]]=row[i];//i-1旁边的人是i
11             }
12         }
13         int cnt=0;
14         for(int i=0;i+1<n;i+=2){
15             if(d[i]==i+1){
16                 //i号人的旁边正好是i+1,即是一对情侣
17                 continue;
18             }
19             else{
20                 int x=d[i];
21                 int y=d[i+1];
22                 d[i]=i+1,d[x]=y,d[i+1]=i,d[y]=x;
23                 ++cnt;
24             }
25         }
26         return cnt;
27     }
28 };

 

765. 情侣牵手

原文:https://www.cnblogs.com/FdWzy/p/12289631.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!