LeetCode第五十一題 N皇后

2021-09-24 05:39:20 字數 740 閱讀 6618

問題簡介:給定乙個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關鍵字...