Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Juan Sedano
Juan Sedano

Posted on • Originally published atjsedano.dev on

     

N-Queens backtraking

This is theN-Queens problem solution with abacktraking approach, look here for theN-Queens brute force approach.

If you are not familiar with theN-Queens problemlook here for an explanation.

You can find the complete code for this post here:NQueensBacktracking.java.

The main difference from this one and the brute force approach is that we will check if a current permutation is a viable solution every time we add a queen, and if it’s not we will not continue pursuing that particular permutation:

static void findSolutions(LinkedHashSetWrapper perm, int n){    if(perm.size() == n) {        System.out.println(perm);        return;    }    for(int i = 0; i < n; i++){        if(!perm.contains(i)) {            perm.add(i);            if(isSolution(perm.copyInnerArray())){                findSolutions(perm, n);            }            perm.removeLastElement();        }    }}
Enter fullscreen modeExit fullscreen mode

In the next image you can see a solution for N = 4 (clic to enlarge)

backtracking solution

Download the complete code from this post hereNQueensBacktracking.java.

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Hi! I just want to learn and share : )
  • Location
    Guadalajara, México
  • Work
    Tech lead at Clip
  • Joined

More fromJuan Sedano

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp