Как перевернуть матрицу
Перейти к содержимому

Как перевернуть матрицу

Поворот матрицы на месте на 180 градусов

Учитывая квадратную матрицу, поверните матрицу на 180 градусов по часовой стрелке. Преобразование должно быть сделано на месте в квадратичное время.

Input:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

Output:

16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1

Если мы поменяем местами элементы первой строки с элементами последней строки в обратном порядке, элементы второй строки с элементами предпоследней строки в обратном порядке и так далее… мы получим искомую матрицу. Обратите внимание, что если матрица имеет нечетные размеры, переверните элементы средней строки.

Алгоритм может быть реализован следующим образом на C++, Java и Python:

Как повернуть матрицу на 90 градусов java

Приведенный ниже метод rotateMatrix() повернет ее на 90 градусов в заданном направлении :

import java.util.Arrays; public class App  enum RotateType  // для задания типа поворота - влево или вправо LEFT, RIGHT > // метод поворачивающий матрицу public static int[][] rotateMatrix(int[][] matrix, RotateType type)  var rows = matrix[0].length; var columns = matrix.length; var result = new int[rows][columns]; for (var i = 0; i  rows; i++)  for (var j = 0; j  columns; j++)  result[i][j] = (type == RotateType.LEFT) ? matrix[j][rows - 1 - i] : matrix[columns - 1 - j][i]; > > return result; > public static void main(String[] args)  int[][] arr = <1,2,3>, 4,5,6>, 7,8,9>>; int[][] rotateLeft = rotateMatrix(arr, RotateType.LEFT); System.out.println(Arrays.deepToString(rotateLeft)); // => [[3, 6, 9], [2, 5, 8], [1, 4, 7]] int[][] rotateRight = rotateMatrix(arr, RotateType.RIGHT); System.out.println(Arrays.deepToString(rotateRight)); // => [[7, 4, 1], [8, 5, 2], [9, 6, 3]] > > 

Перевернуть матрицу

.fill , заполняет элементы одним и тем же массивом.

Поэтому при выводе значения одинаковые по строкам.

В случае с .map — каждый раз создается новый массив.

Отслеживать
ответ дан 31 окт 2022 в 7:06
80.9k 9 9 золотых знаков 78 78 серебряных знаков 134 134 бронзовых знака
Но и в том и в другом случае получается заготовка состоящая из пустых массивов. Такая: [[],[],[],]
31 окт 2022 в 14:20

@АлёнаБабанкова, в ответе как раз об этом речь. В первом случае — это ссылка на один и тот же массив, во втором — на разные. При выводе они могут выглядеть одинаково при этом.

31 окт 2022 в 14:37
поняла!спасибо!
31 окт 2022 в 14:44

  • javascript
  • матрицы
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.29.1725

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как перевернуть матрицу

Серия iPhone от Apple редко чем удивляет. Когда вы получаете новый iPhone, общее впечатление, скорее всего, будет очень похожим на ваше предыдущее устройство. Однако всё совсем не так в лагере владельцев устройств на Android. Существуют телефоны Android всех форм и размеров, не говоря уже о разных ценовых категориях. Другими словами, Android-телефон может подойти многим. Однако поиск лучших телефонов на Android может быть сложной задачей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *