Leetcode24-找到两个数组中的公共元素(2956)

1、题目

给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,它们分别含有 n 和 m 个元素。

请你计算以下两个数值:

统计 0 <= i < n 中的下标 i ,满足 nums1[i] 在 nums2 中 至少 出现了一次。

统计 0 <= i < m 中的下标 i ,满足 nums2[i] 在 nums1 中 至少 出现了一次。

请你返回一个长度为 2 的整数数组 answer ,按顺序 分别为以上两个数值。

示例 1:

输入:nums1 = [4,3,2,3,1], nums2 = [2,2,5,2,3,6]

输出:[3,4]

解释:分别计算两个数值:

  • nums1 中下标为 1 ,2 和 3 的元素在 nums2 中至少出现了一次,所以第一个值为 3 。
  • nums2 中下标为 0 ,1 ,3 和 4 的元素在 nums1 中至少出现了一次,所以第二个值为 4 。
    示例 2:

输入:nums1 = [3,4,2,3], nums2 = [1,5]

输出:[0,0]

解释:两个数组中没有公共元素,所以两个值都为 0 。

提示:

n == nums1.length

m == nums2.length

1 <= n, m <= 100

1 <= nums1[i], nums2[i] <= 100

2、解

直接转化为set集合后判断是否在另一个set中。

cpp 复制代码
    vector<int> findIntersectionValues(vector<int> &nums1, vector<int> &nums2) {
        unordered_set<int> set1(nums1.begin(), nums1.end());
        unordered_set<int> set2(nums2.begin(), nums2.end());
        vector<int> ans(2);
        for (int x: nums1) ans[0] += set2.count(x);
        for (int x: nums2) ans[1] += set1.count(x);
        return ans;
    }
相关推荐
4311媒体网几秒前
C语言实现简单的二分查找算法
c语言·开发语言·算法
持续学习的程序员+12 分钟前
π RL(piRL)算法支持用强化学习方法训练π 0/π 0.5(pi0/pi0.5)
算法
csuzhucong12 分钟前
112魔方、113魔方、114魔方
算法
无限进步_14 分钟前
C语言实现贪吃蛇游戏详解
c语言·开发语言·数据结构·c++·后端·算法·游戏
CHANG_THE_WORLD18 分钟前
C++ vs Python 参数传递方式对比
java·c++·python
Element_南笙24 分钟前
吴恩达新课程:Agentic AI(笔记11)
大数据·人工智能·笔记·算法·机器学习
ULTRA??42 分钟前
C++实现右折叠
开发语言·c++
handsomezqh1 小时前
洛谷U611548 助教的比拼
c++·算法
小李小李快乐不已1 小时前
图论理论基础(4)
c++·算法·图论·迭代加深
好易学·数据结构1 小时前
可视化图解算法72:斐波那契数列
数据结构·算法·leetcode·动态规划·力扣·牛客网