N ферзей рекурсивный метод 1d массив - PullRequest
0 голосов
/ 28 октября 2018

Я не уверен, как написать этот метод.positionQueens (0) должен поместить ферзь в первую строку, а затем вызвать себя с помощью positionQueens (1) и поместить в следующую строку.Если теперь он может размещаться в любом месте строки, он должен вернуться к предыдущему ряду и проверить, чтобы поместить предыдущую королеву в новое место.

private void positionQueens(int row){
    for (int col = 0; col < row; col++){
        if(legal(row,col)){
            queens[row] = col;
        }
        else {
            positionQueens(row+1);
        }
    }
}

Это мой метод проверки законности размещения королевы.в n строке, столбце

 private boolean legal(int row, int col){
    for (int i = 0; i < row; i++){
        if ((queens[i] == col) || (Math.abs(i-row)==Math.abs(queens[i]-col))){
            return false;
        }
    }
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...