яндекс собеседования

Поиск выбывших/отсуствующих в массиве элементов - Разбор алгоритмической задачи с собеседований

Финальное решение:

<?php

$arr = [123, 45, 5638, 49, -78, 22, 5, 345, 68, 7];
$arr_result = [123, 5638, 22, 5, 68, 7, 0, 0, 0, 0];

$index = [];
foreach ($arr as $val) {
    $index[$val] = 1;
}

foreach ($arr_result as $key => $val) {
  if ($val) {
    unset($index[$val]); 
  }
}

// ответ
$arr = array_keys($index);
foreach ($arr as $key => $val) {
    echo $val . ' ';
}







Перестановка нулей в конце массива - Разбор решения алгоритмической

Финальный вариант:

$arr = [0, 3, 2, 1, 0, 3, 2, 4, 0, -5];
// [3, 2, 1, 3, 2, 4, -5, 0, 0, 0]

$shift = 0;
foreach ($arr as $key => $val) {
    if ($val === 0) {
       $shift++;
    } else {
       $arr[$key-$shift] = $val;
    }
}

for ($i=count($arr) - $shift; $i<count($arr); $i++  ) {
    $arr[$i] = 0;
}

// ответ
foreach ($arr as $key => $val) {
    echo $val . ' ';
}
Subscribe to RSS - яндекс собеседования