【每日一题Day283】LC822翻转卡片游戏 | 哈希表

简介: 【每日一题Day283】LC822翻转卡片游戏 | 哈希表

翻转卡片游戏【LC822】

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

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

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

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

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

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

思路

如果某个数同时出现在一张卡片的正面或者反面,那么这个数字一定不是我们想要的数字。因此遍历数组,使用哈希表记录这些数字,再次遍历找到出现过但未同时出现的数字

实现

使用数组代替哈希表,

初始为0,表示没有出现过该数字

值为1时表示这个数字是我们想要的数字

值为2时表示这个数字不是我们想要的数字

class Solution {
    public int flipgame(int[] fronts, int[] backs) {
        int n = fronts.length;
        int[] flag = new int[2001];
        for (int i = 0; i < n; i++){
            if (fronts[i] == backs[i]){
                flag[fronts[i]] = 2;
            }else{
                flag[fronts[i]] = Math.max(flag[fronts[i]], 1);
                flag[backs[i]] = Math.max(flag[backs[i]], 1);
            }
        }
        for (int i = 1; i <= 2000;i++){
            if (flag[i] == 1){
                return i;
            }
        }
        return 0;
    }
}

复杂度

时间复杂度:O ( n ∗ C )

空间复杂度:O ( C )

目录
相关文章
|
6月前
【每日一题Day199】LC1010总持续时间可被 60 整除的歌曲 | 哈希表
【每日一题Day199】LC1010总持续时间可被 60 整除的歌曲 | 哈希表
43 1
|
6月前
【每日一题Day176】LC2404出现最频繁的偶数元素 | 哈希表
【每日一题Day176】LC2404出现最频繁的偶数元素 | 哈希表
50 0
【每日一题Day176】LC2404出现最频繁的偶数元素 | 哈希表
|
6月前
|
算法
【每日一题Day297】LC2682找出转圈游戏输家 | 模拟+哈希表
【每日一题Day297】LC2682找出转圈游戏输家 | 模拟+哈希表
67 0
|
6月前
|
算法
【每日一题Day229】LC2352相等行列对 | 哈希
【每日一题Day229】LC2352相等行列对 | 哈希
45 0
|
6月前
|
存储
【每日一题Day113】LC1797设计一个验证系统 | 哈希表
【每日一题Day113】LC1797设计一个验证系统 | 哈希表
41 0
|
6月前
【每日一题Day301】LC2337移动片段得到字符串 | 双指针 计分
【每日一题Day301】LC2337移动片段得到字符串 | 双指针 计分
49 0
|
1月前
|
索引
Leetcode第三十三题(搜索旋转排序数组)
这篇文章介绍了解决LeetCode第33题“搜索旋转排序数组”的方法,该问题要求在旋转过的升序数组中找到给定目标值的索引,如果存在则返回索引,否则返回-1,文章提供了一个时间复杂度为O(logn)的二分搜索算法实现。
19 0
Leetcode第三十三题(搜索旋转排序数组)
|
6月前
【每日一题Day308】LC57插入区间 | 模拟
【每日一题Day308】LC57插入区间 | 模拟
46 0
|
6月前
【每日一题Day353】LC2525根据规则将箱子分类 | 模拟
【每日一题Day353】LC2525根据规则将箱子分类 | 模拟
29 0
|
6月前
【每日一题Day124】LC2347最好的扑克手牌 | 哈希表
【每日一题Day124】LC2347最好的扑克手牌 | 哈希表
36 0