总结:
先把思路想好,再写代码好吧?
没什么好说的跟着题目的要求走
'''
'''
def fun1(image):
'''
理解题目意思,第一个循环水平翻转
第二个循环进行替换
:param image:
:return:
'''
for hang in range(len(image)):
l = 0 # 左侧
r = len(image[0]) - 1 # 右侧
cur=image[hang] #深拷贝,对cur的操作会影响到原数组
while l<r: #不加等号,因为奇数个时中间不用动,偶数个时不会相等
cur[l],cur[r]=cur[r],cur[l]
l+=1
r-=1
for hang in range(len(image)):
cur=image[hang]
for i in range(len(cur)):
if cur[i]==0:
cur[i]=1
else:
cur[i]=0
return image
这个可以说一下,省去了一些不必要的计算
这样的话整体就好弄些了
def fun2(image):
'''
这个题目有些步骤可以省略,我们来看一下
假如 i 和 i的对应位为两个不同的数 1 和 0 反转后变为0,1再变成1,0所以可以不动
假如i和i的对应位 为两个相同的数 1,1 反转后变为1,1再变成0,0,所以直接变成0,0就好
:param image:
:return:
'''
for hang in range(len(image)):
cur = image[hang]
l = 0
r = len(cur) - 1
while l <= r: # 这里多加一个等号
if cur[l] == cur[r]:
if cur[l] == 0:
cur[l] = 1
cur[r] = 1
else:
cur[l] = 0
cur[r] = 0
l += 1
r -= 1
return image