LeetCode 822. 翻转卡片游戏(哈希)
文章目录
- 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. 翻转卡片游戏(哈希)相关推荐
- 822 翻转卡片游戏
题目描述: 在桌子上有 N 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样). 我们可以先翻转任意张卡片,然后选择其中一张卡片. 如果选中的那张卡片背面的数字 X 与任意一张 ...
- leetcode 822. Card Flipping Game | 822. 翻转卡片游戏(Java)
题目 https://leetcode.com/problems/card-flipping-game/ 题解 这个题描述挺复杂,总结起来就一句话: 正反面相同的肯定不行,所以找除了正反面相同的以外, ...
- html5翻卡片游戏,用 JavaScript 写一个卡片小游戏
小游戏使用了HTML5,CSS3和JavaScript的基本的技术. 将讨论数据属性.定位.透视.转换.flexbox.事件处理.超时和三元组. 你不需要在编程方面有太多的知识和经验就能看懂,不过还是 ...
- bootstrap项目实例_Vue.js 项目实践——创建记忆卡片游戏
作者:Jiawei Pan 转发链接:https://mp.weixin.qq.com/s/VXPD2p7q2S3yR9I7lzAkfw 前言 如果你刚开始学习 Vue,想巩固基础知识,那么你可以试试 ...
- 实验楼项目课学习笔记-jQuery翻转拼图游戏
2019独角兽企业重金招聘Python工程师标准>>> 项目效果图如下: game/index.html <!DOCTYPE html><html><h ...
- nyoj905 卡片游戏
卡片游戏 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范 ...
- NYOJ 905 卡片游戏
卡片游戏 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范 ...
- 卡片游戏 数学期望
链接:https://www.nowcoder.com/acm/contest/202/H 来源:牛客网 卡片游戏 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其 ...
- 1.cocos2dx记忆卡片游戏代码、并将游戏移植到“华为荣耀”手机上、移植中的问题总结
1记忆卡片游戏代码 CardItem.h #pragmaonce #ifndef__CardItem_H__ #define__CardItem_H__ #include"cocos2 ...
最新文章
- mysql建表字段不能重复_MySQL建表的一些约束条件
- 作业调度算法--短作业优先 操作系统_处理器管理_编程题
- 【FI模块学习笔记】 实收资本概述
- HotSpot源码(一):Docker与虚拟机的区别,class字节码解析,linux内核源码下载地址,Yacc与Lex快速入门
- numpy数组基础语法
- 从框架源码中学习创建型设计模式
- object-c 混编 调用C,C++接口
- android聊天界面对话气泡_你在和脚本谈恋爱(自动化在IM聊天中的应用)
- Cadence orcad cis数据库搭建及access元器件数据库下载
- 动态修改Log4J和Logback的日志级别
- 简单讲讲SQL注入原理防御
- 微信群二维码活码生成管理系统源码
- 英语语法详解:名词修饰名词
- fofa批量验证poc脚本笔记
- 起底硅谷最神秘、估值最高的大数据公司:Palantir
- htop 进程管理工具
- Purism FAQ
- Carbon Streaming提供股票和权证合并的最新信息,以寻求潜在的美国上市
- 小科普:什么是屏幕分辨率
- week9-东东学打牌
热门文章
- python中的元组操作
- 理解:复杂度是O(log^n) 就是二分法
- 车流检测之halcon光流法算法实现
- C#调用C++类(以COM组件的形式)
- C语言常量类型及名称,菜鸟带你入门C语言|基本数据类型之常量
- java 中violate_Java中的volatile关键字及Cache更新
- jdbc mysql demo_JDBC_demo:java连接mysql过程
- python学习笔记(二十)初识面向对象
- linq中给字段添加别名
- PythonR语言-python和r相遇