当前位置: 首页 > news >正文

浙江省网站集约化建设江苏seo平台

浙江省网站集约化建设,江苏seo平台,网站做支付宝花呗分期,网站流量指标1 题目:情侣牵手 官方标定难度:难 n 对情侣坐在连续排列的 2n 个座位上,想要牵到对方的手。 人和座位由一个整数数组 row 表示,其中 row[i] 是坐在第 i 个座位上的人的 ID。情侣们按顺序编号,第一对是 (0, 1)&#…

1 题目:情侣牵手

官方标定难度:难

n 对情侣坐在连续排列的 2n 个座位上,想要牵到对方的手。

人和座位由一个整数数组 row 表示,其中 row[i] 是坐在第 i 个座位上的人的 ID。情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2n-2, 2n-1)。

返回 最少交换座位的次数,以便每对情侣可以并肩坐在一起。 每次交换可选择任意两人,让他们站起来交换座位。

示例 1:

输入: row = [0,2,1,3]
输出: 1
解释: 只需要交换row[1]和row[2]的位置即可。
示例 2:

输入: row = [3,2,0,1]
输出: 0
解释: 无需交换座位,所有的情侣都已经可以手牵手了。

提示:

2n == row.length
2 <= n <= 30
n 是偶数
0 <= row[i] < 2n
row 中所有元素均无重复

2 solution

将需要交换位置的情侣合并成一个个小集合,每个集合为一个环,即
A ->B->C->A, 每个环交换 m - 1 次,m 为环的大小

代码

class Solution {
public:int minSwapsCouples(vector<int> &row) {int n = row.size() / 2;int f[n];for (int i = 0; i < n; i++) {f[i] = i;}auto const find = [&](auto self, int x) {if (f[x] == x) return x;return f[x] = self(self, f[x]);};for (int i = 0; i < n; i++) {int x = row[i * 2] / 2;int y = row[i * 2 + 1] / 2;int p = find(find, y);int q = find(find, x);if(p != q){f[p] = q;}}vector<int> cnt(n);for(int i = 0; i < n; i++) cnt[find(find, i)]++;int sum = 0;for(int x:cnt) if(x) sum += x - 1;return sum;}
};

结果

在这里插入图片描述

http://www.yayakq.cn/news/355446/

相关文章:

  • 佛山手机网站建设二级域名免费解析
  • 网站建设后应该干什么北京做家教的的网站
  • 哪个网站可以领单做效果图网站开发需求评估
  • 2015网站建设源码开封建设企业网站公司
  • wordpress渗透湘潭关键词优化报价
  • 湖州做网站建设的公司哪家好深圳十大劳务派遣公司排名
  • 女装网站建设网站建设都有哪些方面
  • 资源型网站建设 需要多大硬盘中山网站制作服务
  • 上海建站网站的企业网站建设丿金手指下拉9
  • 免费在线网页代理英文网站排名优化
  • 网站制作唐山公司制作华为手机网站建设规划书
  • 制作网制作网站建设的公司简单网站建设运营
  • 教做面食的网站做网站一般字号要做多少
  • 做招聘的网站有哪些内容wordpress首页如何增加模块
  • 集群网站建设湖南兼职网站建设
  • 如何查询网站域名备案容易做的网站
  • 邯郸有设计网站的吗校园二级网站建设
  • 网站服务器怎么进wordpress集成环境
  • 深圳企业建站平台建网站市场
  • 政务服务中心 网站建设深圳市建筑设计研究总院有限公司
  • 滁州建设网站网站开发课程设计总结
  • 网站备份怎么做wordpress主题去版权乱码
  • 昆明大型网站建设网站建设需要哪些硬件
  • 免费ai写作网站湖北二师网站建设排名
  • 2017做哪些网站能致富网站建设的合同条款
  • dw用层还是表格做网站快购买网站空间的方法
  • 企业网站备案信息网站开发工作量评估
  • 网站评论管理怎么做跟网站开发有关系的工作有哪些
  • 主播网站建设绵阳建设局网站皱劲松
  • 福田网站建设有限公司第三方网站备案