8皇后问题(Java版)(1)

总结

以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!

下面给大家分享下我的面试大全资料

  • 第一份是我的后端JAVA面试大全

image.png

后端JAVA面试大全

  • 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 第三份是Spring全家桶资料

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

public class EightQueen {

public static void main(String[]args) {

char[][] ch= new char[8][8]; //定义n*n的棋盘

for(int i=0;i<ch.length;i++) { //对每个棋盘位置都标记为’.’

for(int j=0;j<ch.length;j++) {

ch[i][j]=‘.’;

}

}

solveNQueens(0,ch); //调用递归的函数,从棋盘的第一行开始

}

public static void solveNQueens(int row,char[][] ch2) {

//如果遍历的行数大于棋盘的行数,说明我们遍历到了最后一行,满足要求

if(row>=ch2.length) {

for(int i=0;i<ch2.length;i++) { //打印这一种方案

for(int j=0;j<ch2.length;j++) {

System.out.print(ch2[i][j]);

}

System.out.println();

}

System.out.println();

}

for(int i=0;i<ch2.length;i++) { //依次逐行遍历,

if(check(row,i,ch2)) {

ch2[row][i]=‘Q’; //在每行的标记满足条件的皇后位置

solveNQueens(row+1, ch2); //递归,调用下一行

ch2[row][i]=‘.’; //取消我们之前的标记,避免影响下一次查找

};

}

}

//判断该位置是否适合标记皇后

private static boolean check(int row, int index, char[][] ch2) {

//值得注意的是因为我们采用的逐层遍历的思想,我们不需要再复杂的写一个不在同一行、同一列、同一斜线上的复杂函数

//我们只需要考虑,该位置的上方,左上方,右上方是否有冲突的皇后就可以了

int rightTop=index,leftTop=index;

for(int i=row-1;i>=0;i–) {

rightTop++;

leftTop–;

if(ch2[i][index]==‘Q’)return false;

if(rightTop<ch2.length) {

if(ch2[i][rightTop]==‘Q’)return false;

}

if(leftTop>=0) {

独家面经总结,超级精彩

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

image

image

image

image

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.youkuaiyun.com/topics/618154847)收录**

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值