题目
思路:
1 在输入时对像素值出现的次数进行存储,借此判定像素值是否唯一,如果不是,则直接pass,无须进行后续判断
2 对存储像素值的数组进行扩充,以解决当遍历判断四边的像素值时,出现数组下标越界的情况
代码;
lie,hang,TOL=map(int,input().split())
image=[[0 for j in range(lie+2)] for i in range(hang+2)] #对数组进行填充,避免数组下标越界的情况
present_num={} #记录某像素值出现的次数
for i in range(hang):
inp=list(map(int,input().split()))
for j in range(lie):
image[i+1][j+1]=inp[j]
if inp[j] not in present_num:
present_num[inp[j]] = 1
else:
present_num[inp[j]] = present_num[inp[j]] + 1
only_red=[]
for i in range(1,hang+1):
for j in range(1,lie+1):
if present_num[image[i][j]]!=1: #当像素值不唯一时,直接pass
continue
compare_pix = [image[i - 1][j-1], image[i - 1][j], image[i-1][j + 1],
image[i ][j-1], image[i][j + 1],
image[i+1][j -1], image[i +1][j], image[i+1][j + 1]]
tol_count = 0
for tol in compare_pix:
if abs(image[i][j]-tol)<=TOL:
break
else:
tol_count=tol_count+1
if tol_count==len(compare_pix):
only_red.append([j,i,image[i][j]])
if len(only_red)==0:
print("Not Exist")
if len(only_red)==1:
print('('+str(only_red[0][0])+', '+str(only_red[0][1])+'): '+str(only_red[0][2]))
if len(only_red) > 1:
print("Not Unique")