Учитывая массив a, который содержит только числа в диапазоне от 1 до a.length, найдите первый дубликат числа, для которого второе вхождение имеет минимальный индекс.Другими словами, если имеется более 1 дублированного числа, вернуть номер, для которого второе вхождение имеет меньший индекс, чем второе вхождение другого числа.Если таких элементов нет, верните -1.
Мой код:
function firstDuplicate($a) {
$unique = array_unique($a);
foreach ($a as $key => $val) {
if ($unique[$key] !== $val){
return $key;
}else{
return -1;
}
}
}
Приведенный выше код будет в порядке, когда на входе будет [2, 4, 3, 5, 1]
, но есливвод [2, 1, 3, 5, 3, 2]
вывод неверный.Второе повторяющееся вхождение имеет меньший индекс.Ожидаемый результат должен быть 3.
Как я могу исправить свой код для вывода правильного результата?