Я пытаюсь решить следующую проблему:
При условии ввода, скажем,
0000000000000000
0011111111110000
0011111111110000
0011111111110000
0000000000000000
0000000111111110
0000000111111110
0000000000000000
Мне нужно найти ширину и высоту всех прямоугольников в поле. На самом деле входные данные представляют собой один столбец за раз (кажется, что сканер движется слева направо) и непрерывны в течение всей программы (то есть столбец сканирования не перемещается, а прямоугольники перемещаются по нему).
В этом примере я могу «дождаться начала прямоугольника» (то есть наблюдать за изменением нулей на 1), а затем наблюдать за его окончанием (возвращающимися в нули) и измерять часть в «единицах сетки». Это будет хорошо работать для простого случая, описанного выше, но потерпит неудачу, если прямоугольник наклонен под углом, например:
0000000000000000
0000011000000000
0000111100000000
0001111111000000
0000111111100000
0000011111110000
0000000111100000
0000000011000000
Первоначально я думал, что применим следующий вопрос:
Динамическое программирование - Самый большой квадратный блок
но теперь я не так уверен.
У меня практически нет опыта регрессионного или регрессионного тестирования, но я думаю, что я мог бы представить это как ввод 8 переменных .....
Ну, если честно, я не уверен, как бы я это сделал вообще. Размеры, которые извлекает эта часть кода, должны соответствовать прямоугольникам известных размеров (т. Е. Из базы данных).
Сначала я думал, что смогу использовать известные данные в качестве тренировочных упражнений и сохранить положительные результаты теста, но я действительно не уверен, куда идти.
Спасибо за любой совет.