3030. Find the Grid of Region Average
class Solution:
def resultGrid(self, image: List[List[int]], threshold: int) -> List[List[int]]:
n,m=len(image),len(image[0])
ans=[[0]*m for _ in range(n)]
cnt=[[0]*m for _ in range(n)]
for x in range(n-2):
for y in range(m-2):
ok=1
for i in range(3):
for j in range(2):
if abs(image[x+i][y+j]-image[x+i][y+j+1])>threshold:
ok=0
break
if ok==0:break
for i in range(2):
for j in range(3):
if abs(image[x+i][y+j]-image[x+i+1][y+j])>threshold:
ok=0
break
if ok==0:break
if ok:
tot=0
for i in range(3):
for j in range(3):
tot+=image[x+i][y+j]
for i in range(3):
for j in range(3):
ans[x+i][y+j]+=tot//9
cnt[x+i][y+j]+=1
for i in range(n):
for j in range(m):
if cnt[i][j]:
ans[i][j]//=cnt[i][j]
else:
ans[i][j]=image[i][j]
return ans
这种题不能用np, 要用原始的写法,适当剪枝