Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удаление столбцов/строк в матрице чисел

490
04 июня 2008 года
frid-karatel
357 / / 15.09.2007
Задали интересную задачку по программированию...

В-общем, задание:
Есть матрица 10х10, состоит из цифр от 0-5.

Необходимо ее сжать со всех сторон по такому принципу:
Если по всей стороне (слева, сверху, справа или снизу) есть цифры, которые меньше 3, то удалить этот столбец матрицы.

Я ничего умнее в своей голове не нашел, поэтому сделал через TStringList, так как в нем легче можно удалять по одной букве в каждой строчке.

Что я делаю:
Я беру в каждой строчке первую букву, перевожу в число и стравниваю. Если меньше 3, увеличиваю счетчик на единицу.

Если счетчик равен 10, то удаляю по первому символу из каждой строки, если счетчик не равен 10, то останавливаю цикл.

Но это долго все вычисляется, так как используются строки и перевод их в число. Как сделать быстрее?

PS: Думал через int Matrix[X][Y], где X и Y равны 10, но запутался со сдвигом всех элементов влево, вправо, вниз или вверх при удалении стобца матрицы.
490
10 июня 2008 года
frid-karatel
357 / / 15.09.2007
Хотя бы как быстрее сдвинуть все элементы массива влево? Только циклом?
2.0K
10 июня 2008 года
BroKeR
163 / / 04.05.2006
 
Код:
for (int i=k;i<ar_size-1;++i) ar=ar[i+1];
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог