专栏首页Petrichor的专栏【leetcode】八皇后

【leetcode】八皇后

代码实现:

class solution(object):

    def solveNQueens(self, n):
        self.helper([-1]*n, 0, n)

    def helper(self, columnPosition, rowindex, n):#ding
        # print(rowindex)
        if rowindex == n:
            self.printSolution(columnPosition, n)
            # print(columnPosition)
            return
        # for column in range(n-rowindex):
        for column in range(n):
            columnPosition[rowindex] = column
            if self.isValid(columnPosition, rowindex):
                self.helper(columnPosition, rowindex+1, n)

    def isValid(self, columnPosition, rowindex):
        if len(set(columnPosition[ :rowindex+1]))!=len(columnPosition[:rowindex+1]):
            # print(columnPosition, rowindex)
            return False
        for i in range(rowindex):
            if abs(columnPosition[i]-columnPosition[rowindex]) == int(rowindex-i):
                # print(columnPosition, rowindex)
                return False
        return True
    def printSolution(self, columnPosition, n):
        # print(columnPosition)
        for row in range(n):
            line = ""
            for column in range(n):
                if columnPosition[row] == column:
                    line += "Q\t"
                else:
                    line += ".\t"
            print(line, "\n")
        print('\n')

测试用例:

solution().solveNQueens(8)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • leetcode: 17. Letter Combinations of a Phone Number

    JNingWei
  • leetcode: 73. Set Matrix Zeroes

    JNingWei
  • leetcode: 107. Binary Tree Level Order Traversal II

    JNingWei
  • “无人驾驶公交车”真的来了,简阳人你敢坐吗?

    在简阳, 你肯定见过无人贩卖机, 很多地方都有, 大型商场、街道边··· 这似乎早就不足为奇来了。 ? 在大城市, 甚至还上线了, 无人超市、无人餐厅。 可...

    企鹅号小编
  • 【Oracle】-【体系结构-LGWR】-LGWR的一些理解

    LGWR,是Log Writer的缩写,也是一种后台进程。主要负责将日志缓冲内容写到磁盘的在线重做日志文件或组中。DBWn将dirty块写到磁盘之前,所有与bu...

    bisal
  • NFS介绍,NFS服务端安装配置,NFS配置选项

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在...

    端碗吹水
  • LeetCode 29:验证二叉搜索树 Validate Binary Search Tree

    Given a binary tree, determine if it is a valid binary search tree (BST).

    爱写bug
  • 用于 Windows 下的日志跟踪分析工具(Tail for Windows)

    在 Linux 下做开发和调试任务的时候,有些情况会动态去跟踪一些日志的变化来调试问题。Linux 下使用 tail -f 就可以达到需求了,但 Windows...

    我与梦想有个约会
  • 相克军_Oracle体系_随堂笔记010-SCN

    2、常见的SCN 2.1控制文件的三个SCN 系统SCN

    Alfred Zhao
  • 新恶意软件通过原装USB用无线网偷走电脑秘密

    2013年,前NSA(美国国家安全局)成员斯诺登就曾公开演示过间谍是如何通过一个改装过的USB设备悄悄偷走电脑中的数据。而就在近日,以色列的一家公司开发出了这一...

    BestSDK

扫码关注云+社区

领取腾讯云代金券