题意大概就是给出m*n的像素组,将其中A-B范围内的换成一个指定的像素值,A,B和指定的像素值都在输入的第一行给到,并且输出全部为三位的像素值
在接收输入之后,直接开始for循环遍历,然后将A-B范围内的像素值换掉并且全部换成三位数值
刚开始我是建了个函数来把数值变成三位字符串,提交发现超时了,代码是这样的:
m , n , A , B , change = map(int,input().split())
def san(n):
if len(str(n)) == 3:
return str(n)
else:
s = str(n).rjust(3,'0')
return s
res = []
for i in range(m):
l = list(map(int,input().split()))
for j in range(n):
if A <= l[j] <= B:
l[j] = san(change)
else:
l[j] = san(l[j])
res.append(l)
for k in res:
print(' '.join(k))
然后把函数去掉了,直接在替换的时候在前置位补上0,这样:
m , n , A , B , change = map(int,input().split())
change = '0'*(3-len(str(change))) + str(change)
res = []
for i in range(m):
l = input().split()
for j in range(n):
if A <= int(l[j]) <= B:
l[j] = change
else:
l[j] = '0'*(3-len(l[j])) + l[j]
res.append(l)
for k in res:
print(' '.join(k))
提交结果:

耗时还是有点长。。。
优化像素替换算法
本文探讨了一种像素替换算法的优化过程,通过去除函数调用并直接在循环中处理数值转换,显著减少了处理时间。虽然这种方法提高了效率,但作者仍认为耗时较长,暗示可能还有进一步的优化空间。

被折叠的 条评论
为什么被折叠?



