Leetcode 每日一題 52 N皇后 II

2021-10-24 21:15:41 字數 825 閱讀 5566

n 皇后問題研究的是如何將 n 個皇后放置在 n×n 的棋盤上,並且使皇后彼此之間不能相互攻擊。

上圖為 8 皇后問題的一種解法。

給定乙個整數 n,返回 n 皇后不同的解決方案的數量。

示例:輸入: 4

輸出: 2

解釋: 4 皇后問題存在如下兩個不同的解法。

[[".q…", // 解法 1

「…q」,

「q…」,

「…q.」],

["…q.", // 解法 2

「q…」,

「…q」,

「.q…」]]

該題目是比較經典的回溯演算法題,下面我們使用字典和回溯相結合的思路進行結題。c++**如下:

class

solution

intfindcount

(int n,

int row,unordered_set<

int>

& col,unordered_set<

int>

& dialeft,unordered_set<

int>

& diaright)

return count;}}

};

執行效果(比較渣,就是官方講解的搬運):

該解法利用了,行和下表相減相同則在一條斜線上的規律進行的程式設計,

力扣每日一題 52 N皇后II

八皇后問題是個經典的問題,n皇后問題算是八皇后問題的擴充套件,都可以通過回溯方法求解。資料的儲存方式 對於乙個nxn的棋盤,最基本的實現方式是使用乙個nxn的矩陣m,若矩陣m i j 值為1,則表示在點 i,j 處放置乙個皇后。但是這個實現方式比較耗記憶體。我們知道,一行內最多只能有乙個皇后,所以可...

leetcode演算法練習 52 N皇后 II

所有題目源 git位址 題目n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回 n 皇后不同的解決方案的數量。示例 輸入 4輸出 2解釋 4 皇后問題存在如下兩個不同的解法。q.解法 1 q q.q....

每日一題 LeetCode

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...