数据结构与算法之八皇后问题

简介: 八皇后问题代码实现package com.pionner.recursion;public class Queen8 { int max = 8; int[] array = new int[max]; static int i = 0; public...

八皇后问题代码实现

package com.pionner.recursion;

public class Queen8 {

    int max = 8;

    int[] array = new int[max];

    static int i = 0;

    public static void main(String[] args) {
        Queen8 queen8 = new Queen8();
        queen8.check(0);
        System.out.println(i);

    }


    private void print() {
        for (int item : array) {
            System.out.print(item + " ");
        }
        System.out.println();
    }

    private boolean judge(int n) {
        for (int i = 0; i < n; i++) {
            if (array[i] == array[n] || Math.abs(n - i) == Math.abs(array[n] - array[i])) {
                return false;
            }
        }

        return true;
    }

    private void check(int n) {
        if (n == max) {
            i++;
            print();
            return;
        }

        for (int i = 0; i < max; i++) {
            array[n] = i;
            if (judge(n)) {
                check(n+1);
            }
        }
    }
}
目录
相关文章
|
1月前
|
算法 定位技术
数据结构与算法学习九:学习递归。递归的经典实例:打印问题、阶乘问题、递归-迷宫问题、八皇后问题
本文详细介绍了递归的概念、重要规则、形式,并展示了递归在解决打印问题、阶乘问题、迷宫问题和八皇后问题等经典实例中的应用。
40 0
|
6月前
|
算法 Java 定位技术
【数据结构与算法】递归、回溯、八皇后 一文打尽!
【数据结构与算法】递归、回溯、八皇后 一文打尽!
|
算法
【算法】 八皇后问题之回溯法
会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。每次填满第一行第一列,当不满足时候,试下第一行第二列,依次进行,递归的出口为找到第八个点,跳出递归。,在循环里面还要判断是否满足不同行,不同列,不同对角线。使用回溯法来解决该问题,下面的代码是我看到过的最精简的代码,相关的注释都写在代码上了。运行得出结果,总共有92中结果。
267 0
【短学期算法作业】八皇后问题(回溯法)
【短学期算法作业】八皇后问题(回溯法)
【短学期算法作业】八皇后问题(回溯法)
|
算法 Java
【递归与回溯算法】汉诺塔与八皇后问题详解
文章目录 1 汉诺塔问题 1.1 汉诺塔问题概述 1.2 思路分析 1.3 代码实现(Java) 1.4 结果验证 2 八皇后问题 2.1 八皇后问题概述 2.2 思路分析 2.2.1 问题划分与分析 2.2.2 涉及到的数据结构分析 2.2.3 上下对角线与行列的关系 2.3 代码实现(Java) 2.4 结果验证
【递归与回溯算法】汉诺塔与八皇后问题详解
|
机器学习/深度学习 人工智能 算法
8种人工智能算法求解八皇后问题+原理分析
8种人工智能算法求解八皇后问题+原理分析
2294 1
8种人工智能算法求解八皇后问题+原理分析
|
算法 程序员
图解算法:摘取位运算的王冠「八皇后问题」!| 算法必看系列十七
位运算在生产或算法解题中并不常见,不过如果你用得好,可以达到事半功倍的效果,而且位运算用得好,也可以极大地提升性能,如果在生产或面试中能看到使用位运算来解题,会让人眼前一亮!巧用位运算,不仅会提升性能,还会让代码的可读性更好,达到四两拨千斤的效果!
图解算法:摘取位运算的王冠「八皇后问题」!| 算法必看系列十七
|
机器学习/深度学习 算法 C++
Interview:算法岗位面试—上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点—斐波那契数列、八皇后问题、两种LCS问题
Interview:算法岗位面试—上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点—斐波那契数列、八皇后问题、两种LCS问题
|
算法 Java 定位技术
回溯算法 | 追忆那些年曾难倒我们的八皇后问题
首发公众号:bigsai,用通俗易懂的话详解了八皇后问题。
2529 0
回溯算法 | 追忆那些年曾难倒我们的八皇后问题
下一篇
无影云桌面