博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--052--N皇后II(java)
阅读量:7040 次
发布时间:2019-06-28

本文共 1250 字,大约阅读时间需要 4 分钟。

皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。

上图为 8 皇后问题的一种解法。

给定一个整数 n,返回 n 皇后不同的解决方案的数量。

示例:

输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[ [".Q..",  // 解法 1  "...Q",  "Q...",  "..Q."], ["..Q.",  // 解法 2  "Q...",  "...Q",  ".Q.."]] 只需要把51题的return条件换掉就行,注意用static时,服务器进行测试1的时候很容易出错。故变为数组进行存储结果。。。不求上进
1 class Solution { 2     public static int totalNQueens(int n) { 3         if(n <=0)return 0; 4         int[] res={0}; 5         helper(new int[n],0,res); 6         return res[0]; 7     } 8     public static void helper(int[] queens,int pos,int[] res){ 9         if(pos == queens.length){10             res[0] += 1;11             return;12         }13         for(int i = 0 ;i < queens.length;i++){14             queens[pos] = i;15             if(isValid(queens,pos)){16                 helper(queens,pos+1,res);17             }18         }19     }20     public static boolean isValid(int[] queens,int pos){21         for(int i = 0;i < pos;i++){22             if(queens[i] == queens[pos])return false;23             else if(Math.abs(queens[i] - queens[pos]) == Math.abs(i - pos)){24                 return false;25             }26         }27         return true;28     }29     30 }

2019-05-10 16:19:39

转载于:https://www.cnblogs.com/NPC-assange/p/10845120.html

你可能感兴趣的文章
git学习笔记
查看>>
Thinking——Debian On Windows初试
查看>>
看完你也想编写自己的 react 插件
查看>>
数据结构与算法:常见排序算法
查看>>
记录一次并发读取MongoDB的踩坑过程
查看>>
初识JavaScript EventLoop
查看>>
MVC是什么
查看>>
关于 emotion 初步使用的笔记
查看>>
PHP 怎样在同一个域名下两个不同的项目做独立的登录机制?
查看>>
SpringCloud(第 005 篇)电影微服务,注册到 EurekaServer 中,通过 Http 协议访问用户微服务...
查看>>
k-邻近算法(kNN)
查看>>
gulp基础和常用插件介绍
查看>>
开发之路(设计模式六:命令模式上)
查看>>
JavaScript:并发模型与Event Loop
查看>>
CSS揭秘之《条纹背景》
查看>>
用Kettle从excel中将导入oracle数据库的简单方法
查看>>
【跨域】跨域的简易实现和测试
查看>>
获得字符串包含↵,渲染到页面不换行的解决办法
查看>>
北哥这篇文讲解yii2权限扩展(yii2-admin) - 下部
查看>>
微信web开发遇到的坑
查看>>