返回介绍

solution / 0300-0399 / 0349.Intersection of Two Arrays / README_EN

发布于 2024-06-17 01:04:01 字数 4297 浏览 0 评论 0 收藏 0

349. Intersection of Two Arrays

中文文档

Description

Given two integer arrays nums1 and nums2, return _an array of their intersection_. Each element in the result must be unique and you may return the result in any order.

 

Example 1:

Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]

Example 2:

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]
Explanation: [4,9] is also accepted.

 

Constraints:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

Solutions

Solution 1

class Solution:
  def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
    return list(set(nums1) & set(nums2))
class Solution {
  public int[] intersection(int[] nums1, int[] nums2) {
    boolean[] s = new boolean[1001];
    for (int x : nums1) {
      s[x] = true;
    }
    List<Integer> ans = new ArrayList<>();
    for (int x : nums2) {
      if (s[x]) {
        ans.add(x);
        s[x] = false;
      }
    }
    return ans.stream().mapToInt(Integer::intValue).toArray();
  }
}
class Solution {
public:
  vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
    bool s[1001];
    memset(s, false, sizeof(s));
    for (int x : nums1) {
      s[x] = true;
    }
    vector<int> ans;
    for (int x : nums2) {
      if (s[x]) {
        ans.push_back(x);
        s[x] = false;
      }
    }
    return ans;
  }
};
func intersection(nums1 []int, nums2 []int) (ans []int) {
  s := [1001]bool{}
  for _, x := range nums1 {
    s[x] = true
  }
  for _, x := range nums2 {
    if s[x] {
      ans = append(ans, x)
      s[x] = false
    }
  }
  return
}
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function (nums1, nums2) {
  const s = Array(1001).fill(false);
  for (const x of nums1) {
    s[x] = true;
  }
  const ans = [];
  for (const x of nums2) {
    if (s[x]) {
      ans.push(x);
      s[x] = false;
    }
  }
  return ans;
};
public class Solution {
  public int[] Intersection(int[] nums1, int[] nums2) {
    List<int> result = new List<int>();
    HashSet<int> arr1 = new(nums1);
    HashSet<int> arr2 = new(nums2);
    foreach (int x in arr1) {
      if (arr2.Contains(x)) {
        result.Add(x);
      }
    }
    return result.ToArray();
  }
}
class Solution {
  /**
   * @param Integer[] $nums1
   * @param Integer[] $nums2
   * @return Integer[]
   */
  function intersection($nums1, $nums2) {
    $rs = [];
    $set1 = array_values(array_unique($nums1));
    $set2 = array_values(array_unique($nums2));
    for ($i = 0; $i < count($set1); $i++) {
      $hashmap[$set1[$i]] = 1;
    }
    for ($j = 0; $j < count($set2); $j++) {
      if ($hashmap[$set2[$j]]) {
        array_push($rs, $set2[$j]);
      }
    }
    return $rs;
  }
}

Solution 2

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function (nums1, nums2) {
  return Array.from(new Set(nums1)).filter(num => new Set(nums2).has(num));
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文