Проверьте, равны ли данные два массива (используя карту)
Учитывая два массива, A[] и B[] , задача состоит в том, чтобы проверить, равны они или нет. Массивы считаются равными, если любая перестановка массива B равна массиву A .
Примеры:
Input: A[] = [2, 4, 5, 7, 5, 6] and B[] = [4, 2, 5, 5, 6, 7]
Output: Yes
Explanation: All the elements in array A are present in array B and same number of times.Input: A[] = [2, 5, 8, 9, 78] and B[] = [5, 2, 7, 78, 8]
Output: No
Explanation: In array A there is a 9 and in array B there is a 7
Подход: проблема может быть решена с использованием хэш-карты на основе следующей идеи:
Two arrays will be equal only if the frequency of the respective elements in both arrays are equal.
Следуйте инструкциям, чтобы решить проблему:
- Если размеры обоих массивов не равны, вернуть NO.
- Поддерживайте хэш-карту и подсчитывайте частоту обоих элементов массива.
- Если для какого-либо элемента частота не одинакова, то вернуть НЕТ
- В противном случае вернуть YES
Ниже приведена реализация описанного выше подхода.
Time complexity: O(N) in average case and O(N2) in worst case.
Auxiliary Space: O(N)