You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[LeetCode] 1222. Queens That Can Attack the King #1222
On an 8x8 chessboard, there can be multiple Black Queens and one White King.
Given an array of integer coordinates queens that represents the positions of the Black Queens, and a pair of coordinates king that represent the position of the White King, return the coordinates of all the queens (in any order) that can attack the King.
Example 1:
Input: queens = [[0,1],[1,0],[4,0],[0,4],[3,3],[2,4]], king = [0,0]
Output: [[0,1],[1,0],[3,3]]
Explanation:
The queen at [0,1] can attack the king cause they're in the same row.
The queen at [1,0] can attack the king cause they're in the same column.
The queen at [3,3] can attack the king cause they're in the same diagnal.
The queen at [0,4] can't attack the king cause it's blocked by the queen at [0,1].
The queen at [4,0] can't attack the king cause it's blocked by the queen at [1,0].
The queen at [2,4] can't attack the king cause it's not in the same row/column/diagnal as the king.
Example 2:
Input: queens = [[0,0],[1,1],[2,2],[3,4],[3,5],[4,4],[4,5]], king = [3,3]
Output: [[2,2],[3,4],[4,4]]
Example 3:
Input: queens = [[5,6],[7,7],[2,1],[0,7],[1,6],[5,1],[3,7],[0,3],[4,0],[1,2],[6,3],[5,0],[0,4],[2,2],[1,1],[6,4],[5,4],[0,0],[2,6],[4,5],[5,2],[1,4],[7,5],[2,3],[0,5],[4,2],[1,0],[2,7],[0,1],[4,6],[6,1],[0,6],[4,3],[1,7]], king = [3,4]
Output: [[2,3],[1,4],[1,6],[3,7],[4,3],[5,4],[4,5]]
Constraints:
1 <= queens.length <= 63
queens[i].length == 2
0 <= queens[i][j] < 8
king.length == 2
0 <= king[0], king[1] < 8
At most one piece is allowed in a cell.
这道题说是在一个 8 by 8 大小的国际象棋的棋盘上,放了多个黑色皇后和一个白色的国王,国际象棋的中的皇后就相当于中国象棋中的车,不过比车更叼,不但能横竖走,还能斜着走,国王就相当于将和帅,现在问有多少个皇后能攻击到国王。题目中的每个例子都十分贴心的配了图,可以更好的帮助我们理解。博主最开始没看清楚题目,认为直接判断每个皇后是否跟国王共线就可以了,但是即便是共线,也不代表皇后就可以攻击到国王,若中间还有其他皇后就不行,就像例子1中的那样。所以视角就应该转移到国王本身,对于棋盘上任意一个非边缘位置,共有八个方向可以去,而每个方向都可能遇到皇后,一旦遇到皇后了,这个方向就不会再遇到其他的皇后了。所以就应该以国王为起点,分别朝八个方向前进,看是否可以遇到皇后。
Activity
[-][LeetCode] 1222. Missing Problem[/-][+][LeetCode] 1222. Queens That Can Attack the King[/+]