Я должен определить, является ли указанное место ярким пятном. Пятно считается светлым, если выполняются все три следующих условия:
1) Красное значение пикселя в указанном месте больше (! =) Всех (8 возможных?) Окружающих пикселей.
2) Значение синего цвета пикселя в указанном месте меньше (! =) Всех (8 возможных?) Окружающих пикселей.
3) Значение зеленого цвета пикселя в указанном месте больше (! =) Среднего (зеленого) всех (8 возможных?) Окружающих пикселей.
Я пытался использовать этот код для решения проблемы.
public boolean isBrightSpot(int r, int c)
{
// add code here
int minRow=Math.max(0,r-1);
int maxRow=Math.min(getNumRows(),r+2);
int minCol=Math.max(0,c-1);
int maxCol=Math.min(getNumCols(),c+2);
for (int row=minRow; row< maxRow; r++)
{
for (int col=minCol; col<maxCol; c++)
{
if (monitor[r][c].getRed()>monitor[row][col].getRed()){
if (monitor[r][c].getBlue()<monitor[row][col].getBlue()){
int average=0;
int counter=0;
int sum = 0;
for (int row1=minRow; row1< maxRow; r++)
{
for (int col1=minCol; col1<maxCol; c++)
{
sum = sum+monitor[row1][col1].getGreen();
counter++;
}
}
average= sum/counter;
if (monitor[r][c].getGreen()>average)
return true;
}
}
}
}
return false;
}
}
Тестеру требуются бесконечные тесты, и в итоге он говорит «ВМ перезапущен».