`

Leetcode - N Queues II

 
阅读更多
[分析] 做完N皇后第一题,这个就so easy~

public class Solution {
    public int totalNQueens(int n) {
        int[] rows = new int[n]; // rows[i] = j, means board[i][j] = Q
        int[] cols = new int[n]; // cols[j] = i, means board[i][j] = Q
        for (int i = 0; i < n; i++) {
            rows[i] = -1;
            cols[i] = -1;
        }
        return recur(n, 0, rows, cols);
    }
    
    public int recur(int n, int r, int[] rows, int[] cols) {
        if (r == n) {
            return 1;
        }
        int result = 0;
        for (int j = 0; j < n; j++) {
            if (cols[j] == -1 && verifyDiagnal(rows, r, j)) {
                rows[r] = j;
                cols[j] = r;
                result += recur(n, r + 1, rows, cols);
                rows[r] = -1;
                cols[j] = -1;
            }
        }
        return result;
    }
    
    public boolean verifyDiagnal (int[] rows, int r, int c) {
        for (int i = 0; i < r; i++) {
            if (r - i == Math.abs(c - rows[i]))
                return false;
        }
        return true;
    }
}
分享到:
评论

相关推荐

    LeetCode最全代码

    137 | [Single Number II](https://leetcode.com/problems/single-number-ii/) | [C++](./C++/single-number-ii.cpp) [Python](./Python/single-number-ii.py) | _O(n)_ | _O(1)_ | Medium ||| 190 | [Reverse Bits]...

    Leetcode扑克-LeetCode:力码

    【描述】提到的"Tree"是指在LeetCode中的树形结构问题,这类问题涉及二叉树、N叉树等,要求开发者实现遍历、查找、插入和删除等操作。"Array"则涵盖了数组相关的题目,包括但不限于数组排序、查找、合并等。...

    leetcode分类-leetcode:leetcode刷题(中等难度分类)

    在解决LeetCode的问题时,还会遇到一些设计模式的应用,比如"Design HashMap"(设计哈希映射)和"Implement Stack using Queues"(用队列实现栈)。掌握设计模式可以帮助我们更好地组织代码,提高代码的可读性和复用...

    leetCode:leetCode 问题

    LeetCode 是一个在线编程平台,它提供了大量的算法题目和实战练习,旨在帮助程序员提升技能,尤其是对于准备技术面试的人来说,LeetCode 是一个非常宝贵的资源。本压缩包文件 "leetCode-master" 很可能是包含了...

    LeetCode

    9. **回溯法(Backtracking)**:尝试所有可能的解决方案,如“N皇后问题”(N-Queens)。 10. **位操作(Bit Manipulation)**:利用位运算解决数学问题,如“只出现一次的数字”(Single Number)。 LeetCode-...

    dsa:我在LeetCode,AlgoExpert,Educative和其他面试准备网站上的面试问题编码和解决方案

    LeetCode、AlgoExpert、Educative等平台是广受欢迎的在线学习资源,它们提供了一系列的编程挑战和面试问题,帮助开发者提升在这些关键领域的技能。 首先,我们来看看一些主要的数据结构: 1. 链表(Linked List)...

Global site tag (gtag.js) - Google Analytics