【一】 interview(面試題)
【1.1】 leetcode 51 52:n queens(n皇后問題)
題目說明:西洋象棋,如何將 n 個皇后放置在 n x n 的棋盤上,並且使得皇后之間不能相互攻擊
result =
# 深度優先遍歷
defdfs
(cols, na, pie, n)
:'''
:param cols: 列表,儲存皇后所在的列的索引
:param na: 列表,儲存皇后輻射的反斜區域
:param pie: 列表,儲存皇后輻射的正斜區域
:param n: 數字,表示有幾個皇后
'''p =
len(cols)
if p == n:
return
none
for q in
range
(n):
if q not
in cols and p-q not
in na and p+q not
in pie:
dfs(cols+
[q], na+
[p-q]
, pie+
[p+q]
, n)
# 呼叫函式並返回結果
defsolvenqueen
(n):
dfs(,,
, n)
return[[
'.'*i +
'q'+
'.'*
(n-i-1)
for i in sol]
for sol in result ]
print
(solvenqueen(4)
)
資料結構和演算法 Day 10
頭節點的資料域一般不記錄資訊。注意區分頭結點和頭指標的區別 1 頭指標 是指鍊錶指向第乙個節點的指標,若煉表有頭結點,則是指向頭結點的指標。頭指標具有標識作用,所以常用頭指標冠以鍊錶名字 指標變數的名字 無論鍊錶是否為空,頭指標均不為空。頭指標是鍊錶的必要元素。2 頭結點 頭結點是為了操作的統一和方...
資料結構刷題 剪枝
在刷題中會遇到,比如二叉樹問題中會遇到剪枝的問題,我們需要,研究一下什麼是剪枝 剪枝可謂是搜尋的靈魂所在,我們知道搜尋是個愣頭青小伙,一路撞到底可能都撞不到答案,他還可能要撞很多次。所以有什麼方法可以讓他撞的次數少一點呢?我們知道搜尋會形成乙個搜尋樹,這其中有很多的枝杈,但是他們中許多其實是無用或者...
資料結構和演算法 10 集合
集合 聯合 交叉 差異 子集 using system using system collections using system collections generic using system linq using system text using system threading tasks...