Давайте рассмотрим двухнедельный учебный план LeetCode по борьбе с DS. Часть 5.

Проблема

Даны два целочисленных массива nums1 и nums2, вернуть массив их пересечения. Каждый элемент в результате должен появляться столько раз, сколько он отображается в обоих массивах, и вы можете возвращать результат в любом порядке.

Пример 1:

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

Пример 2:

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

Ограничения:

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

Решение

Это простая задача с массивами.

  1. создайте хеш.
  2. создать результат.
  3. перебрать массив nums1 с помощью цикла for.
  4. если нет хеша в i, хеш в i становится равным 1.
  5. в противном случае переместите хэш вперед.
  6. выйти из для цикла.
  7. перебрать массив nums2 с помощью цикла for.
  8. если хэш в i больше 0, нажмите i на результат и переместите хэш назад.
  9. выйти из для цикла.
  10. вернуть результат.

Код

Удачного кодирования!