В одном из заданий на сайте codewars в качестве дополнительного алгоритма требовалось вращать массив в конкретном направлении.
Хотя направлений всего два (против или по часовой стрелке), приведу вам код для вращения против часовой стрелки.
Итак, исходные данные:
Требуется получить:
Код для вращения следующий:
Вращение по часовой стрелке реализуется аналогично, но если вам лень думать (а такое часто бывает), можете сразу сходить в git/gist.
Хотя направлений всего два (против или по часовой стрелке), приведу вам код для вращения против часовой стрелки.
Итак, исходные данные:
$a = [
[1,2,3],
[4,5,6],
[7,8,9],
];
Требуется получить:
$a = [
[3,6,9],
[2,5,8],
[1,4,7],
];
Код для вращения следующий:
function rotate($a)
{
$r = [];
$i = 0;
$ti = count($a[0]);
$tj = count($a);
for (; $i < $ti; $i++) {
$row = [];
for ($j = 0; $j < $tj; $j++) {
$row[] = $a[$j][$i];
}
array_unshift($r, $row);
}
return $r;
}
Вращение по часовой стрелке реализуется аналогично, но если вам лень думать (а такое часто бывает), можете сразу сходить в git/gist.
Комментариев нет:
Отправить комментарий