zoukankan      html  css  js  c++  java
  • 【LeetCode】排序

    [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 };
    View Code
     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 = 0, idx2 = 0;
     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 };
    View Code
  • 相关阅读:
    前端 CSS 与HTML 学习笔记详细讲解
    Python-Django之DRF
    Flask
    flask
    Python
    Python爬虫
    前端开发规范
    为什么 [] == ![] 输出是true?
    javascript准确判断各种数据类型
    JavaScript数组扁平化常用方法总结
  • 原文地址:https://www.cnblogs.com/zhangwanying/p/6661503.html
Copyright © 2011-2022 走看看