# arithmetic **Repository Path**: AlphF_admin/arithmetic ## Basic Information - **Project Name**: arithmetic - **Description**: 我的算法练习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2017-08-06 - **Last Updated**: 2024-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # arithmetic 目录 用于各种学习研究算法,数据结构和java基础。 --------------------------------------- ## 算法 算法有五种: 分治,动态规划,贪心,回溯,分支限界 ## 电子书 [mysql](https://gitee.com/AlphF_admin/arithmetic/tree/master/src/main/java/learnBook/mysql) [mysql45讲](https://gitee.com/AlphF_admin/arithmetic/tree/master/src/main/java/learnBook/mysql/mysql45) [分布式](https://gitee.com/AlphF_admin/arithmetic/tree/master/src/main/java/learnBook/fenbushi) [java面试](https://gitee.com/AlphF_admin/arithmetic/tree/master/src/main/java/learnBook/javaFaceTest) --------------------------------------- 2019年8月4日18:01:02 八皇后问题: @see EightQueen.java https://blog.csdn.net/Hackbuteer1/article/details/6657109 大致思路: ``` public void queen(int[] arr, int n, int row) { if (row == n) { printQueen(arr, n);//求解成功,打印结果 } else { for (int i = 0; i < n; i++) { // 循环当行 每个格子是否可以落子 if (canPlace(arr, n, row * n + i)) { // 判断是否可落子 arr[row * n + i] = 1; // 落子 queen(arr, n, row + 1); // 递归到下一行 arr[row * n + i] = 0; // 回退,说明此处落子后面某行可能无法落子 } } } } /** *判断是否可以落子 */ public canPlace(int[] arr, int n, int i){ int row = i/n; int col = i%n; for(int j=0;j0) return false; if(col-(row-j)>=0 && a[j*n+col-(row-j)]>0) return false; if(col+(row-j)0) return false; } for(int j=0;j