数据结构与算法(Java版) | 几个经典的算法面试题(下)
创始人
2024-03-29 02:37:08
0

上一讲,我给大家介绍了两个经典算法面试题,即字符串匹配问题和汉诺塔游戏,这一讲,我再来给大家介绍两个经典算法面试题,它们就是八皇后问题和马踏棋盘算法,注意,马踏棋盘算法也被称为骑士周游问题哟!

接下来,我就先来给大家介绍一下八皇后问题这个经典算法面试题吧!

八皇后问题

八皇后问题,是一个古老而著名的问题,而且还是回溯算法的一个典型案例。该问题是由国际西洋棋棋手马克斯·贝瑟尔于1848年提出的,即在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,也就是说任意两个皇后都不能处于同一行、同一列或同一斜线上,问一共有多少种摆法?

在这里插入图片描述

这个问题,当时一个叫高斯的人认为一共有76种方案,高斯相信大家都知道,他是一个著名的数学家,小学的时候咱们就学过高斯定律,对他有印象吧!反转来了,在1854年,柏林的象棋杂志上有不同的作者发表了40种不同的解,后来又有人用图论的方法解出了92种结果,的确,如果用图论的方式来编程实现,那么确实是有92种摆法。当然,等到计算机发明后,多种计算机语言就都可以用来解决此问题了!

注意,这里我只是想给大家简单介绍一下八皇后问题,至于具体编程实现,那就要等到后面专门讲这个八皇后问题时再来给大家写代码实现了。

刚刚好,网络上就有一款这样的八皇后在线玩的小游戏,游戏地址是https://www.novelgames.com/zh/queens/,打开该地址,你便能尽情地玩耍了!我看大家眼馋,要不接下来我给大家玩一把吧!看看我能不能在棋盘上摆出一个符合要求的八皇后摆法!不过,在玩游戏之前,我需要先给大家说明一下,就是符合要求的八皇后摆法是一共有92种,每一种摆法都让我试一下,那我肯定搞不定,但是一两种摆法我还是可以摆出来的,这一点对我来说没有任何问题啊!

打开该游戏,我来给大家玩一把,看我怎样摆出一个符合要求的八皇后摆法。当然,如果大家有兴趣,不妨自己也来玩一把!

首先,将一个皇后摆在棋盘的最左下角的那个格子。

在这里插入图片描述

摆好之后,那么第二行的第一个格子和第二个格子你就不能摆了,因为如果你摆了,那这两个皇后就会处在同一列或者同一斜线上,游戏自然也就无法继续玩下去了。

那第二行我们摆在哪一个格子呢?摆在第五个格子就OK了。

在这里插入图片描述

继续,第三行我们摆在第八个格子上。

在这里插入图片描述

继续,第四行我们摆在第六个格子上。

在这里插入图片描述

继续,第五行我们摆在第三个格子上。

在这里插入图片描述

继续,第六行我们摆在第七个格子上。

在这里插入图片描述

继续,第七行我们摆在第二个格子上。

在这里插入图片描述

最后一行我们摆在第四个格子上。

在这里插入图片描述

至此,游戏完美通关!

现在,大家应该对这个游戏感兴趣了吧!哈哈哈😄,还是挺有意思的啊,大家呢也不妨先在这里玩一玩,后续我再专门给大家去讲这个八皇后问题的回溯算法,千万不要着急哟!

马踏棋盘算法

下面我们再来看一个非常有意思的经典算法面试题,即马踏棋盘算法,当然,有些人也把它叫做骑士周游问题。

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...