問題簡介:給定乙個n*n的棋盤,求解如何將n個皇后放置在棋盤上, 保證其之間不互相攻擊,即給定乙個整數 n,返回所有不同的解決方案,用 『q』 和 『.』 分別代表了皇后和空位
注:例如下圖為n = 8 時的乙個解
舉例:輸入: 4
輸出: [
[".q…", // solution 1
「…q」,
「q…」,
「…q.」],
["…q.", // solution 2
「q…」,
「…q」,
「.q…」]
]解法一:
利用遞迴,首先從第一行元素開始,逐行掃瞄判斷,主要的關注點在於判斷q值的同列,斜向上是否有q值,這裡賦予值1代表』q』值及』.'為0,當判斷斜向時,從左上到右下的方向上(x - y)值固定,從左下到右上的方向上(x + y)值固定,(x,y即橫縱座標),最後要注意遞迴時,值的清理
class solution
void queens(list> result, int n, int i, string lines,
int columns, int ldown, int rdown)
for (int j = 1; j <= n; j++) }}
}
小白刷題之路,請多指教— — 要麼大器晚成,要麼石沉大 LeetCode第五十一題 N皇后
n queens 問題簡介 給定乙個n n的棋盤,求解如何將n個皇后放置在棋盤上,保證其之間不互相攻擊,即給定乙個整數 n,返回所有不同的解決方案,用 q 和 分別代表了皇后和空位 注 例如下圖為n 8 時的乙個解 舉例 輸入 4 輸出 q solution 1 q q q.q.solution 2...
100題 第五十一題 和為n連續正數序列
一,題目 輸入乙個正數 n,輸出所有和為 n連續正數序列。例如輸入 15,由於 1 2 3 4 5 4 5 6 7 8 15 所以輸出 3個連續序列 1 5 4 6和 7 8。二,思路 解法一 連續正序列,不包含n本身。所以子串行中最大元素為 n 2 1 求出到前 i個元素和儲存到b陣列中,然後遍歷...
第五十一節,異常處理和斷言
try關鍵字,定義獲取程式錯誤1 except關鍵字,出現異常錯誤執行裡面的 2 exception定義錯誤類,exception能獲取到所有型別的錯誤錯誤,as建立錯誤物件名稱,自動獲取錯誤資訊3 usr bin env python coding utf8 獲取程式錯誤資訊 try try關鍵字...