[349] Intersection of Two Arrays [Easy]

两个无序可重复数组找交集, 交集要求元素唯一。

Given nums1 = [1, 2, 2, 1]nums2 = [2, 2], return [2].

思路:1、两个unordered_set 可以去重; 2、先排序,双指针

  1. //Space:O(N); Time: 0(N)
  2. //unordered_set insert, emplace, find, delete O(1)
  3.  
  4. class Solution {
  5. public:
  6. vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
  7. unordered_set<int> st1;
  8. for (auto ele: nums1) {
  9. st1.emplace(ele);
  10. }
  11. unordered_set<int> st2;
  12. for (auto ele: nums2) {
  13. if (st1.find(ele) != st1.end()) {
  14. st2.emplace(ele);
  15. }
  16. }
  17. vector<int> ans;
  18. for (auto ele: st2) {
  19. ans.push_back(ele);
  20. }
  21. return ans;
  22. }
  23. };
  1. //space: no extra sapce, time(nlog(n))
  2. //two pointers
  3. class Solution {
  4. public:
  5. vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
  6. sort(nums1.begin(), nums1.end());
  7. sort(nums2.begin(), nums2.end());
  8. vector<int>::size_type idx1 = , idx2 = ;
  9. vector<int> ans;
  10. while(idx1 < nums1.size() && idx2 < nums2.size()) {
  11. if(nums1[idx1] == nums2[idx2]) {
  12. if (ans.empty() || nums1[idx1] != ans.back()) { //使用api之前一定先做条件检测
  13. ans.push_back(nums1[idx1]);
  14. }
  15. idx1++, idx2++;
  16. } else if (nums1[idx1] < nums2[idx2]) {
  17. ++idx1;
  18. } else {
  19. ++idx2;
  20. }
  21. }
  22. return ans;
  23. }
  24. };

【LeetCode】排序的更多相关文章

  1. leetcode.排序.75颜色分类-Java

    1. 具体题目 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列.此题中,我们使用整数 0. 1 和 2 分别表示红色. ...

  2. leetcode.排序.451根据字符出现频率排序-Java

    1. 具体题目 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r ...

  3. leetcode.排序.215数组中的第k个最大元素-Java

    1. 具体题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 : 输入: [3,2,1,5,6,4] 和 k = ...

  4. leetcode.排序.347前k个高频元素-Java

    1. 具体题目 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums ...

  5. 快速排序--15--快排--LeetCode排序数组

    排序数组 给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] ...

  6. [LeetCode] Sort Characters By Frequency 根据字符出现频率排序

    Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ...

  7. [LeetCode] Wiggle Sort II 摆动排序

    Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3]... ...

  8. [LeetCode] Wiggle Sort 摆动排序

    Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] < ...

  9. [LeetCode] Sort List 链表排序

    Sort a linked list in O(n log n) time using constant space complexity. 常见排序方法有很多,插入排序,选择排序,堆排序,快速排序, ...

  10. [LeetCode] Sort Colors 颜色排序

    Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...

随机推荐

  1. c++后台开发面试常见知识点总结(四)数据库

    数据库的索引类型 聚集索引和非聚集索引的区别(叶节点存储内容) 唯一性索引和主码索引的区别 索引的优缺点,什么时候使用索引,什么时候不能使用索引(重点) 索引最左前缀问题 数据库中事务的ACID 数据 ...

  2. Tensorflow中的图(tf.Graph)和会话(tf.Session)详解

    Tensorflow中的图(tf.Graph)和会话(tf.Session) Tensorflow编程系统 Tensorflow工具或者说深度学习本身就是一个连贯紧密的系统.一般的系统是一个自治独立的 ...

  3. 最近开发的项目,遇到用户上传excel文件并导入数据到系统这个需求,而有excel中有的单元格是日期格式,本文介绍怎么从excel中读取日期格式的数据。

    可以先判断单元格的类型,有的日期是字符串存储的,有的是按日期存储的(单元格按数字解析),代码如下: Cell cell = row.getCell(); Date date = null; if (c ...

  4. 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)

    基于网上网友的代码,自己在单片机上实现, 特此记录分享之. 基于https://blog.csdn.net/yyx112358/article/details/78877523 //使用KEIL C5 ...

  5. LC: 404.左叶子节点

    计算给定二叉树的所有左叶子之和. 示例: / \ 9 20 / \ 15 7 ,所以返回 24 解析 我们需要找到这样的节点 属于叶子节点 属于父节点的左子节点 方法一:用栈,dfs遍历,用全局变量r ...

  6. 信号量的使用 ManualResetEvent

    线程的等待时可以用这个,不论是线程池还是线程都可以用这个做等待. ManualResetEvent md=new ManualResetEvent(false);//这个false 设置线程等待, t ...

  7. Nginx加载多个CPU核心,worker_cpu_affinity

    配置Nginx多核CPU,worker_cpu_affinity使用方法和范例1. 2核CPU,开启2个进程 worker_processes 2;worker_cpu_affinity 01 10; ...

  8. http中请求协议 GET和POST两种基本请求方法的区别

    GET和POST是什么?HTTP协议中的两种发送请求的方法. HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议. HTTP的底层是TCP/IP.所以GET和POST的底 ...

  9. java BufferSegment

    package org.rx.util; import java.util.function.Consumer; import static org.rx.core.Contract.require; ...

  10. PHP-版本问题

    PHP 5.3 以下版本 无法用下标直接取得函数返回的数组 eg: $val_0 = explode(',', $val)[0]//报错 #要改成: $exploded_val = explode(' ...