Выбор ответа Junior Матрицы обновлено

Индекс в плоском массиве

Вопрос

Матрица m × n хранится построчно в одномерном массиве. Какой индекс у элемента (r, c)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: r n + c. Перед строкой r лежат r полных строк по n элементов: r n + c.

Варианты ответа

  1. r * m + c
  2. r * n + cправильный ответ
  3. c * n + r
  4. r + c

Разбор

Перед строкой r лежат r полных строк по n элементов: r * n + c. Обратно: r = Math.floor(i / n), c = i % n. Так делают бинпоиск по матрице, где строки продолжают друг друга.

  • r * m умножает на число строк, а не на длину строки.
  • c * n + r это хранение по столбцам, причём с неверным множителем.
  • r + c даёт одинаковый индекс разным клеткам.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.