Сложность: easy
Вам даны два целочисленных массива nums1 и nums2, где nums2 - анаграмма nums1. Оба массива могут содержать дубликаты. Верните индексное отображение массива mapping из nums1 в nums2, где mapping[i] = j означает, что i-й элемент в nums1 появляется в nums2 по индексу j. Если ответов несколько, верните любой из них. Массив a является анаграммой массива b означает, что b создается путем случайного изменения порядка элементов в a.
Пример:
Input: nums1 = [12,28,46,32,50], nums2 = [50,12,32,46,28]
Output: [1,4,3,2,0]
👨💻 Алгоритм:
1⃣Создайте словарь для хранения индексов элементов в nums2.
2⃣Пройдите по элементам массива nums1 и для каждого элемента найдите соответствующий индекс в nums2, используя словарь.
3⃣Верните массив индексов.
😎 Решение:
function anagramMapping($nums1, $nums2) {
$indexMap = [];
foreach ($nums2 as $i => $num) {
if (!isset($indexMap[$num])) {
$indexMap[$num] = [];
}
$indexMap[$num][] = $i;
}
$mapping = [];
foreach ($nums1 as $num) {
$mapping[] = array_pop($indexMap[$num]);
}
return $mapping;
}Ставь 👍 и забирай 📚 Базу знаний