zoukankan      html  css  js  c++  java
  • 350. Intersection of Two Arrays II

    题目:

    Given two arrays, write a function to compute their intersection.

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

    Note:

    • Each element in the result should appear as many times as it shows in both arrays.
    • The result can be in any order.

    Follow up:

      • What if the given array is already sorted? How would you optimize your algorithm?
      • What if nums1's size is small compared to nums2's size? Which algorithm is better?
      • What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?

    答案:

    思路是先排序再比较

     1 class Solution {
     2 public:
     3     vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
     4         sort(nums1.begin(),nums1.end());
     5         sort(nums2.begin(),nums2.end());
     6         int n1=nums1.size(),n2=nums2.size();
     7         vector<int>s;
     8         int i=0,j=0;
     9         while(i<n1&&j<n2){
    10             if(nums1[i]==nums2[j]){
    11                 s.push_back(nums1[i]);
    12                 i++;
    13                 j++;
    14             }
    15             else if(nums1[i]<nums2[j]){
    16                 i++;
    17             }
    18             else{
    19                 j++;
    20             }
    21         }
    22         return s;
    23     }
    24 };
  • 相关阅读:
    day10
    day 09
    day08
    day07
    day6
    day5
    成员变量和局部变量
    (第五章)java面向对象之this的作用总结
    简单的音乐播放
    异步消息处理机制 简析
  • 原文地址:https://www.cnblogs.com/Reindeer/p/5728923.html
Copyright © 2011-2022 走看看