Удаление столбцов/строк в матрице чисел
В-общем, задание:
Есть матрица 10х10, состоит из цифр от 0-5.
Необходимо ее сжать со всех сторон по такому принципу:
Если по всей стороне (слева, сверху, справа или снизу) есть цифры, которые меньше 3, то удалить этот столбец матрицы.
Я ничего умнее в своей голове не нашел, поэтому сделал через TStringList, так как в нем легче можно удалять по одной букве в каждой строчке.
Что я делаю:
Я беру в каждой строчке первую букву, перевожу в число и стравниваю. Если меньше 3, увеличиваю счетчик на единицу.
Если счетчик равен 10, то удаляю по первому символу из каждой строки, если счетчик не равен 10, то останавливаю цикл.
Но это долго все вычисляется, так как используются строки и перевод их в число. Как сделать быстрее?
PS: Думал через int Matrix[X][Y], где X и Y равны 10, но запутался со сдвигом всех элементов влево, вправо, вниз или вверх при удалении стобца матрицы.
Хотя бы как быстрее сдвинуть все элементы массива влево? Только циклом?
Код:
for (int i=k;i<ar_size-1;++i) ar=ar[i+1];