![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
hayaname |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.10.2011 Репутация: нет Всего: нет |
Уважаемые, форумчане!
Прошу Вашей подсказки по реализации такого алгоритма: Дана, к примеру матрица 5 на 5: int width = 5; int hight = 5; byte[][] matrix = new byte[this.hight][this.width]; Данный массив (matrix) нужно заполнить 0 и 1 по массиву mass: int[] mass = {2, 0, 3, 1 и тд} Массив mass формируется по алгоритму RLE, то есть последовательность: 00111 будет записана как - 2 0 3 1, то есть первое число это количество символов, а второе число - каких именно символов. Так вот вопрос - как заполнить массив matrix по массиву mass: Думал сделать так: Код:
Но выбрасывает с этой ошибкой: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExce ption: 4 Надеюсь на помощь |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Заполнять нужно последовательно ? Или по какому то принципу ?
|
|||
|
||||
hayaname |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.10.2011 Репутация: нет Всего: нет |
4epT, последовательно
|
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Как то так:
matrix - матрица которая будет заполняться. arr - массив по которому будет заполняться матрица.
|
|||
|
||||
hayaname |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.10.2011 Репутация: нет Всего: нет |
4epT,
Только не пойму вот этого места:
Зачем два раза проверка такая? |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Это такая ситуация когда кол-во значений которое еще нужно добавить (count) еще не 0, но нужно сделать перевод на новую строку. Это можно все оптимизировать, но я над этим не замрочивался)
|
|||
|
||||
hayaname |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.10.2011 Репутация: нет Всего: нет |
4epT,
Понятно, тогда последний вопрос?))
Используется int width = matrix[0].length; - то есть пока k меньше ширины строки...так как матрица n*n - то получается нет смысла использовать int width = matrix[height].length; Так? |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Если матрица n*n, то да.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |