Java

Помогите с задачей . Код по желанию, мне нужен ход решения .

Дана матрица N*N с числами от -N до N . Удалить из матрицы все строки и столбцы, содержащие максимальный элемент матрицы. Ну и естественно вывести новую матрицу . И нельзя использовать классы (библиотеки разные) (только начали изучать джаву и препод говорит : если увижу какую-нибудь библиотеку, будьте готовы, что буду спрашивать по всей библиотеке) .
Лазиз Ишанов
Лазиз Ишанов
1 012
Написать метод удаления строки:
метод должен смещать все строки, лежащие ниже строки для удаления вверх на один.
в конце должна быть изменена переменная, отвечающая за количество строк.

1 2 3 4
4 5 4 0
3 0 9 1
3 2 2 1

пусть k = 1 - номер строки для удаления (2-я строка)

for(int i = k; i < CountRow - 1; i++){
for(int j = 0; j < CountCol; j++){
arr[i][j] = arr[i+1][j];
}
}
CountRow = CountRow - 1;

Должно получиться:

1 2 3 4
3 0 9 1
3 2 2 1
3 2 2 1

Обрезая размерность массива:
1 2 3 4
3 0 9 1
3 2 2 1

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

В языке Си через указатели можно было бы сделать используя realloc() метод
Мага Тамбиев
Мага Тамбиев
5 124
Лучший ответ
Лазиз Ишанов Ну это я знал, не особо помогло . Вот например : в первой строке 1 и 3 элементы максимальны . Удаляем сначала строку для первого элемента, а для третьего уже удалена будет, надо как-то пропустить её, аналогично со столбцами .
пиши метод для нахождения максимального элемента
пиши метод для удаления заданной строки
пиши метод для удаления заданного столбца

фишка в том, что после каждого удаления столбца и строки матрицы, тебе надо проверять, остались ли ещё элементы равные максимальному...
потому что остальные элементы, ниже максимального и правее максимально будут сдвинуты
и может быть больше чем один максимальный элемент...

попробуй тупо, безо всяких программ, "нарисвать" как бы ты решал подобную задачу...
ИД
Илья Денисов
56 513