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. public class Solution {
  2. public int[] Intersect(int[] nums1, int[] nums2) {
  3. List<int> list = new List<int>();
  4. List<int> intersectList = new List<int>();
  5. list = nums1.ToList<int>();
  6. int num = 0;
  7. int length = nums2.Length;
  8. for(int i=0;i<length;i++)
  9. {
  10. num = nums2[i];
  11. if (list.Contains(nums2[i]))
  12. {
  13. list.Remove(num);
  14. intersectList.Add(num);
  15. }
  16. }
  17. int[] intersect = intersectList.ToArray();
  18. return intersect;
  19. }
  20. }





posted @ 2017-01-10 23:10  xiejunzhao  阅读(118)  评论(0编辑  收藏  举报