1 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果我正確理解了您的問(wèn)題,您可以簡(jiǎn)單地分別跟蹤內(nèi)部矩陣 (y1, x1) 和 (y2, x2) 左上角和右下角的坐標(biāo)。然后,您可以輕松獲得外層并擴(kuò)展內(nèi)部矩陣,如下所示:
獲取外層:這些元素的坐標(biāo)是
(y1-1, j) for j in max(0, x1-1),...,min(N-1, x2+1) (頂行,如果 y1 > 0)
(y2+1, j) for j in max(0, x1-1),...,min(N-1, x2+1) (底行,如果 y2 < N-1)
(i, x1-1) for i in y1,...,y2(左列,如果 x1 > 0)
(i, x2+1) for i in y1,...,y2(右列,如果 x2 < N-1)
擴(kuò)展內(nèi)部矩陣:你只需要更新角坐標(biāo)
y1 = max(0, y1-1), x1 = max(0, x1-1)
y2 = min(N-1, y2+1), x2 = min(N-1, x2+1)
然后重復(fù),直到 (y1, x1) == (0, 0) 和 (y2, x2) == (N-1, N-1)
添加回答
舉報(bào)