LeetCode 765. 情侣牵手(贪心)

1. 题目

N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手。 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。 一次交换可选择任意两人,让他们站起来交换座位。

人和座位用 0 到 2N-1 的整数表示,情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2N-2, 2N-1)。

这些情侣的初始座位 row[i] 是由最初始坐在第 i 个座位上的人决定的。

示例 1:输入: row = [0, 2, 1, 3]
输出: 1
解释: 我们只需要交换row[1]和row[2]的位置即可。示例 2:输入: row = [3, 2, 0, 1]
输出: 0
解释: 无需交换座位,所有的情侣都已经可以手牵手了。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/couples-holding-hands
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 直接查找旁边的是不是对象,不是的话,把对象换过来
  • 提前建立哈希表查找位置,并在换了位置后,更新待查的哈希表
    在这里插入图片描述
class Solution {
public:int minSwapsCouples(vector<int>& row) {int m[row.size()];int i, count = 0;for(i = 0; i < row.size(); ++i){m[row[i]] = i;//哈希表}for(i = 0; i < row.size(); ++i){if(row[i]%2 == 0)//偶数号,其对象是+1号{if(row[i+1] == row[i]+1)//旁边就是++i;//不用调整,跳过else//旁边不是{m[row[i+1]] = m[row[i]+1];//下面要挪动旁边的人,其序号更新swap(row[i+1],row[m[row[i]+1]]);++i;++count;}}else//奇数号,对象是-1号{if(row[i+1] == row[i]-1)++i;else{m[row[i+1]] = m[row[i]-1];//序号更新swap(row[i+1],row[m[row[i]-1]]);++i;++count;}}}return count;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 捕获异常

Python捕获异常 一.常见异常 1.语法错误:SyntaxError:invalid syntax (1)案例: (1)解决方法: ①查看代码有没有红色波浪线 ②熟悉python基本语法 2.变量名不存在:NameError:name b is not defined (1)案例: (2)解决方法: ①检查对应的变量名是否有定义并赋值,是否写错了变量名…

论文浅尝 | WWW2020 - 知识图谱中的实体摘要:算法、评价和应用 (PPT)

本文转载自公众号&#xff1a;专知。知识图谱封装了实体和关系。知识图谱的简洁表示格式和图的特性使得许多新的Web应用程序得以创建&#xff0c;并增强了现有的应用性能。然而&#xff0c;在一个知识图谱中&#xff0c;描述一个实体的几十个或几百个事实可能会超出一个典型用户…

一条互联网广告多少钱?

文 | 申探社本文已获作者授权&#xff0c;禁止二次转载一. 导读互联网广告中的出价模式发展经历了许多变迁。从一开始的CPM&#xff0c;到CPC出价模式&#xff0c;随着Facebook的oCPX (如oCPM/oCPC) 成为了网红&#xff0c;之后的双出价&#xff0c;激活且付费&#xff0c;Face…

LeetCode 100. 相同的树(二叉树遍历)

1. 题目 给定两个二叉树&#xff0c;编写一个函数来检验它们是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 2. 解题 2.1 递归 class Solution { public:bool isSameTree(TreeNode* p, TreeNode* q) {if(!p &&am…

Android官方开发文档Training系列课程中文版:OpenGL绘图之图形绘制

原文地址&#xff1a;http://android.xsoftlab.net/training/graphics/opengl/draw.html 如果你还不清楚如何定义图形及坐标系统&#xff0c;请移步&#xff1a;Android官方开发文档Training系列课程中文版&#xff1a;OpenGL绘图之图形定义。 在定义了图形之后&#xff0c;你…

Python之极验滑动验证码的识别(教程+案例)+识别豆瓣登录滑动验证码(附源码)

Python之极验滑动验证码的识别&#xff08;教程案例&#xff09; def get_tracks(distance, rate0.6, t0.2, v0):"""将distance分割成小段的距离:param distance: 总距离:param rate: 加速减速的临界比例:param a1: 加速度:param a2: 减速度:param t: 单位时间…

论文浅尝 | ICLR 2020 - 一文全览知识图谱研究

本文转载自公众号&#xff1a;AI科技评论 作者 | Michael Galkin编译 | 贾伟ICLR 2020 正在进行&#xff0c;但总结笔记却相继出炉。我们曾对 ICLR 2020 上的趋势进行介绍&#xff0c;本文考虑的主题为知识图谱。作者做波恩大学2018级博士生 Michael Galkin&#xff0c;研究方…

Android官方开发文档Training系列课程中文版:OpenGL绘图之应用投影与相机视图

原文地址&#xff1a;http://android.xsoftlab.net/training/graphics/opengl/projection.html##transform 在OpenGL ES环境中&#xff0c;投影相机View可以将所绘制的图形模拟成现实中所看到的物理性状。这种物理模拟是通过改变对象的数字坐标实现的&#xff1a; 投影 - 这基…

算法工程师怎样提升业务理解能力?

文 | 桔了个仔知乎本文已获作者授权&#xff0c;禁止二次转载我刚转做金融风控时&#xff0c;觉得自己写代码多年了&#xff0c;对金融风控的业务不上心&#xff0c;公司让我做什么我就用自认为及其优雅的编码方式解决&#xff0c;但对为什么要做这个事&#xff0c;做了对业务上…

强化学习在美团“猜你喜欢”的实践

1 概述 “猜你喜欢”是美团流量最大的推荐展位&#xff0c;位于首页最下方&#xff0c;产品形态为信息流&#xff0c;承担了帮助用户完成意图转化、发现兴趣、并向美团点评各个业务方导流的责任。经过多年迭代&#xff0c;目前“猜你喜欢”基线策略的排序模型是业界领先的流式更…

论文浅尝 | CoRR - 面向复杂知识问答的框架语义解析方法

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士。来源&#xff1a;CoRR abs/2003.13956 (2020)链接&#xff1a;https://arxiv.org/pdf/2003.13956.pdfKBQA任务中的语义解析目标是将自然语言问题转化为标准查询&#xff0c;而后用于构建知识库查询。现有的方法主要依…

全栈深度学习第1期:如何启动一个机器学习项目?

一 起 追 剧 鸭 &#xff01;简介Berkeley全栈深度学习追剧计划是由夕小瑶的卖萌屋发起的优质公开课打卡项目&#xff0c;通过微信群为同期追剧的小伙伴提供交流平台。关于该计划的详请见这里。1. Berkeley深度学习追剧群目前已有1000小伙伴加入&#xff0c;公众号后台回复口令…

超详细中文注释的GPT2新闻标题生成项目

超详细中文注释的GPT2新闻标题生成项目&#xff1a;https://zhuanlan.zhihu.com/p/338171330 笔者开源了一个带有超详细中文注释的GPT2新闻标题生成项目。该项目参考了GPT2-Chinese、GPT2-chitchat、CDial-GPT、GPT2等多个GPT2开源项目&#xff08;感谢大佬们的开源&#xff09…

构建时预渲染:网页首帧优化实践

前言 自JavaScript诞生以来&#xff0c;前端技术发展非常迅速。移动端白屏优化是前端界面体验的一个重要优化方向&#xff0c;Web 前端诞生了 SSR 、CSR、预渲染等技术。在美团支付的前端技术体系里&#xff0c;通过预渲染提升网页首帧优化&#xff0c;从而优化了白屏问题&…

论文浅尝 | 利用指针生成网络的知识图谱自然语言生成

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士&#xff0c;研究方向为知识图谱问答。来源&#xff1a;Neurocomputing 382: 174-187 (2020)链接&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0925231219316820?via%3Dihub指针生成网络在自然…

学术工业界大佬联合打造:ML产品落地流程指南

文 | 白鹡鸰给小铁比了个心编 | 小轶给白鸟鸟比了个赞卖萌屋原创出品&#xff0c;本文禁止转载前言现在已经有了许多现成的ML开发部署工具&#xff0c;所以想要完成一个ML产品并不困难。但在实际开发过程中&#xff0c;人多手杂&#xff0c;免不了一顿兵荒马乱。相比之下&#…

基于GAN的个性化短标题生成在1688平台的实践应用

原文链接&#xff1a;https://developer.aliyun.com/article/770631 基于GAN的个性化短标题生成在1688平台的实践应用 在电商情境下&#xff0c;卖家为了吸引买家兴趣&#xff0c;也为了提高商品被搜索引擎检索命中的概率&#xff0c;通常趋向于写过于冗长的商品标题。如何从过…

LeetCode 16. 最接近的三数之和(固定左端+滑动窗口)

1. 题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数&#xff0c;使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如&#xff0c;给定数组 nums [-1&#xff0c;2&#xff0c;1&#xff0c;-4], 和 …

领域应用 | 2020 年中国知识图谱行业分析报告

本文转载自公众号&#xff1a;艾瑞咨询。 核心摘要&#xff1a;人工智能本质是解决生产力升级的问题&#xff0c;人类生产力可以归类为知识生产力和劳动生产力&#xff0c;人工智能走入产业后&#xff0c;可以分为感知智能、认知智能和行为智能&#xff0c;后两者更与生产力相…

Category 特性在 iOS 组件化中的应用与管控

背景 iOS Category功能简介 Category 是 Objective-C 2.0之后添加的语言特性。 Category 就是对装饰模式的一种具体实现。它的主要作用是在不改变原有类的前提下&#xff0c;动态地给这个类添加一些方法。在 Objective-C&#xff08;iOS 的开发语言&#xff0c;下文用 OC 代替&…