Javadoc метода findHorzPosition
говорит:
Находит прямоугольник высотой h
и шириной w
в пределах полосы row0 <= row < row0 + h
с наибольшим количеством «чернил» или самой большой суммой
Это означает, что полоса имеет высоту h
, т.е. метод должен искать прямоугольник с верхней строкой в строке row0
.
Таким образом, код должен , а не иметь p
1 цикл .
Javadoc также говорит:
@return
Индекс самого левого столбца прямоугольника
Код возвращается maxRow
. Код должен возвращать значение q
1 для прямоугольника с наибольшей суммой, а не значение i
для строки с наибольшей суммой.
1) Имена переменных не имеют смысла, что затрудняет выполнение кода. Локальные переменные с односимвольными именами следует использовать только тогда, когда смысл очевиден, например, i
, j
, ... для индексов или x
, y
, z
для координат. В вашем коде p
, q
, i
и j
не являются очевидными именами. Переименуйте q
в left
, i
в row
и j
в col
.