Давайте рассмотрим двухнедельный учебный план 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
Решение
Это простая задача с массивами.
- создайте хеш.
- создать результат.
- перебрать массив nums1 с помощью цикла for.
- если нет хеша в i, хеш в i становится равным 1.
- в противном случае переместите хэш вперед.
- выйти из для цикла.
- перебрать массив nums2 с помощью цикла for.
- если хэш в i больше 0, нажмите i на результат и переместите хэш назад.
- выйти из для цикла.
- вернуть результат.
Код
Удачного кодирования!