zoukankan      html  css  js  c++  java
  • LeetCode--052--N皇后II(java)

    皇后问题研究的是如何将 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

  • 相关阅读:
    Spring Boot + Vue 开发前后端分离的员工管理系统
    树莓派4B部署docker
    免费的论文查重网站
    JavaScript设计模式
    js继承的用法
    js闭包与柯里化
    Javascript编程小技巧
    spy-debugger和fiddler实现移动端抓包
    grid布局
    js判断对象是否为空对象的几种方法
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/10845120.html
Copyright © 2011-2022 走看看