我的任务是创建一个给定位置 (int x, int y) 的方法,它从该位置扩展并找到数组中与原始位置具有相同颜色的所有像素。我应该递归地找到这个位置,但我不断收到错误:
线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:3
代码:
public int sizeOfConnectedComponent(Position p) {
    if ((rows > pixels.length || cols > pixels[0].length) || (rows < 0 || cols < 0)) {
        return 0;
    } else if (!pixels[rows][cols] || visited[rows][cols]) {
        return 0;
    } else {
        visited[rows][cols] = true;
        sizeOfConnectedComponent((new Position(rows - 1, cols)));
        sizeOfConnectedComponent((new Position(rows + 1, cols)));
        sizeOfConnectedComponent((new Position(rows, cols - 1)));
        sizeOfConnectedComponent((new Position(rows, cols + 1)));
        {
            if (visited[rows][cols] == true){
                total++;
            }
        }
    }
    return total;
}
错误发生就行了if (!pixels[rows][cols] || visited[rows][cols])。任何想法为什么会发生这种情况以及如何解决它?