当前位置: 首页 > ops >正文

leetcode 349. Intersection of Two Arrays

题目描述

题目限制0 <= nums1[i], nums2[i] <= 1000,所以可以开辟一个1001个元素的数组来做哈希表。

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {vector<int> table(1001,0);for(int n:nums1){table[n]++;}vector<int> res;for(int n:nums2){if(table[n] >0){res.push_back(n);table[n] = 0;}}return res;}
};

也可以用unordered_set

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> table;for(int n:nums1){if(!table.contains(n)){table.insert(n);}}vector<int> res;for(int n:nums2){if(table.contains(n)){res.push_back(n);table.erase(n);}}return res;}
};

如图所示unordered_set可以直接用vector构造

更简洁的代码:

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> table(nums1.begin(),nums1.end());vector<int> res;for(int n:nums2){if(table.contains(n)){res.push_back(n);table.erase(n);}}return res;}
};
http://www.xdnf.cn/news/5180.html

相关文章:

  • 独立按键控制LED
  • [杂谈随感-13]: 人的睡眠,如何布置床的位置比较有安全?感?
  • HashMap中put()方法的执行流程
  • Python数据分析案例74——基于内容的深度学习推荐系统(电影推荐)
  • libwebsockets:高性能跨平台WebSocket库实践指南
  • C++——继承
  • 线程安全 1_线程安全
  • Ubuntu22.04怎么退出Emergency Mode(紧急模式)
  • Python环境搭建指南
  • 【redis 初阶】linux 上安装 redis
  • 电池的寿命(不清楚是什么类型/虽然有标明是贪心)
  • NVMe控制器IP设计之接口模块
  • 机器学习 day02
  • PD快充诱骗协议芯片XSP04D与主板共用一个Type-C和电脑传输数据
  • 关于Spring
  • 小刚说C语言刷题—1078求恰好使s=1+1/2+1/3+…+1/n的值大于X时n的值
  • 巡检机器人数据处理技术的创新与实践
  • 【Redis】string
  • Git 时光机:修改Commit信息
  • Java零组件实现配置热更新
  • gitkraken 使用教程
  • ai agent(智能体)开发 python3基础14:在python 中 总能看到方法里面套方法,那什么时候用这种方式合适呢?
  • Python常见面试题
  • LWIP的IP协议笔记
  • 通俗的理解MFC消息机制
  • 理解计算机系统_并发编程(2)_基于I/O复用的并发(一):select浅解
  • 如何理解编程中的递归、迭代与回归?
  • Shell 脚本编程1(常用命令+概述)
  • 在 Elasticsearch 中删除文档中的某个字段
  • Web自动化测试入门详解