文章目录

  • 1. 题目
  • 2. 解题

1. 题目

在桌子上有 N 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。

我们可以先翻转任意张卡片,然后选择其中一张卡片。

如果选中的那张卡片背面的数字 X 与任意一张卡片的正面的数字都不同,那么这个数字是我们想要的数字。

哪个数是这些想要的数字中最小的数(找到这些数中的最小值)呢?如果没有一个数字符合要求的,输出 0。

其中, fronts[i] 和 backs[i] 分别代表第 i 张卡片的正面和背面的数字。

如果我们通过翻转卡片来交换正面与背面上的数,那么当初在正面的数就变成背面的数,背面的数就变成正面的数。

示例:
输入:fronts = [1,2,4,4,7], backs = [1,3,4,1,3]
输出:2
解释:假设我们翻转第二张卡片,那么在正面的数变成了 [1,3,4,4,7] ,
背面的数变成了 [1,2,4,1,3]。
接着我们选择第二张卡片,
因为现在该卡片的背面的数是 2,2 与任意卡片上正面的数都不同,
所以 2 就是我们想要的数字。提示:
1 <= fronts.length == backs.length <= 1000
1 <= fronts[i] <= 2000
1 <= backs[i] <= 2000

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

2. 解题

  • 第一次遍历,正反一样的数字,肯定不是答案,记录于哈希set
  • 第二次遍历,正反不一样的牌中,取较小的,且不在哈希set中的数值
class Solution {public:int flipgame(vector<int>& fronts, vector<int>& backs) {int minnum = INT_MAX;unordered_set<int> s;for(int i = 0; i < fronts.size(); ++i){if(fronts[i] == backs[i])s.insert(fronts[i]);}for(int i = 0; i < fronts.size(); ++i){if(fronts[i] == backs[i])continue;if(!s.count(fronts[i]))minnum = min(minnum, fronts[i]);if(!s.count(backs[i]))minnum = min(minnum, backs[i]);}return minnum==INT_MAX ? 0 : minnum;}
};

36 ms 18.8 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 822. 翻转卡片游戏(哈希)相关推荐

  1. 822 翻转卡片游戏

    题目描述: 在桌子上有 N 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样). 我们可以先翻转任意张卡片,然后选择其中一张卡片. 如果选中的那张卡片背面的数字 X 与任意一张 ...

  2. leetcode 822. Card Flipping Game | 822. 翻转卡片游戏(Java)

    题目 https://leetcode.com/problems/card-flipping-game/ 题解 这个题描述挺复杂,总结起来就一句话: 正反面相同的肯定不行,所以找除了正反面相同的以外, ...

  3. html5翻卡片游戏,用 JavaScript 写一个卡片小游戏

    小游戏使用了HTML5,CSS3和JavaScript的基本的技术. 将讨论数据属性.定位.透视.转换.flexbox.事件处理.超时和三元组. 你不需要在编程方面有太多的知识和经验就能看懂,不过还是 ...

  4. bootstrap项目实例_Vue.js 项目实践——创建记忆卡片游戏

    作者:Jiawei Pan 转发链接:https://mp.weixin.qq.com/s/VXPD2p7q2S3yR9I7lzAkfw 前言 如果你刚开始学习 Vue,想巩固基础知识,那么你可以试试 ...

  5. 实验楼项目课学习笔记-jQuery翻转拼图游戏

    2019独角兽企业重金招聘Python工程师标准>>> 项目效果图如下: game/index.html <!DOCTYPE html><html><h ...

  6. nyoj905 卡片游戏

    卡片游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范 ...

  7. NYOJ 905 卡片游戏

    卡片游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范 ...

  8. 卡片游戏 数学期望

    链接:https://www.nowcoder.com/acm/contest/202/H 来源:牛客网 卡片游戏 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其 ...

  9. 1.cocos2dx记忆卡片游戏代码、并将游戏移植到“华为荣耀”手机上、移植中的问题总结

     1记忆卡片游戏代码 CardItem.h #pragmaonce #ifndef__CardItem_H__ #define__CardItem_H__ #include"cocos2 ...

最新文章

  1. mysql建表字段不能重复_MySQL建表的一些约束条件
  2. 作业调度算法--短作业优先 操作系统_处理器管理_编程题
  3. 【FI模块学习笔记】 实收资本概述
  4. HotSpot源码(一):Docker与虚拟机的区别,class字节码解析,linux内核源码下载地址,Yacc与Lex快速入门
  5. numpy数组基础语法
  6. 从框架源码中学习创建型设计模式
  7. object-c 混编 调用C,C++接口
  8. android聊天界面对话气泡_你在和脚本谈恋爱(自动化在IM聊天中的应用)
  9. Cadence orcad cis数据库搭建及access元器件数据库下载
  10. 动态修改Log4J和Logback的日志级别
  11. 简单讲讲SQL注入原理防御
  12. 微信群二维码活码生成管理系统源码
  13. 英语语法详解:名词修饰名词
  14. fofa批量验证poc脚本笔记
  15. 起底硅谷最神秘、估值最高的大数据公司:Palantir
  16. htop 进程管理工具
  17. Purism FAQ
  18. Carbon Streaming提供股票和权证合并的最新信息,以寻求潜在的美国上市
  19. 小科普:什么是屏幕分辨率
  20. week9-东东学打牌

热门文章

  1. python中的元组操作
  2. 理解:复杂度是O(log^n) 就是二分法
  3. 车流检测之halcon光流法算法实现
  4. C#调用C++类(以COM组件的形式)
  5. C语言常量类型及名称,菜鸟带你入门C语言|基本数据类型之常量
  6. java 中violate_Java中的volatile关键字及Cache更新
  7. jdbc mysql demo_JDBC_demo:java连接mysql过程
  8. python学习笔记(二十)初识面向对象
  9. linq中给字段添加别名
  10. PythonR语言-python和r相遇