'''
在一个 8x8 的棋盘上,放置着若干「黑皇后」和一个「白国王」。
给定一个由整数坐标组成的数组 queens ,表示黑皇后的位置;
以及一对坐标 king ,表示白国王的位置,返回所有可以攻击国王的皇后的坐标(任意顺序)。
'''
from typing import List
class Solution:
def queensAttacktheKing(self, queens: List[List[int]], king: List[int]) -> List[List[int]]:
ret = []
# 8个方向
direction = [[0, 1], [0, -1], [1, 0], [-1, 0], [-1, -1], [-1, 1], [1, -1], [1, 1]]
for i in range(8):
k_x, k_y = king[0], king[1]
# 从king出发,沿着方向i,一直走到棋盘边界
while k_x >= 0 and k_x <= 8 and k_y >= 0 and k_y <= 8:
k_x += direction[i][0]
k_y += direction[i][1]
if [k_x, k_y] in queens:
ret.append([k_x, k_y])
break
return ret
LeetCode刷题日记(1222. 可以攻击国王的皇后)
最新推荐文章于 2024-07-14 11:23:58 发布