题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,
每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,
判断数组中是否含有该整数。
解法1:时间复杂度为O(m*n) 即O(n**2)
class Solution:
# array 二维列表
# target 整数
def Find(self, target, array):
# write code here
for i in range(len(array)):
for j in range(len(array[i])):
if target==array[i][j]:
return True
return False
解法2:时间复杂度为O(m+n) 即O(n)
class Solution:
# array 二维列表
def Find(self, target, array):
# 1 2 3 4
# 3 4 5 6
# 4 6 8 10
# 9 13 15 17
row_count = len(array) # 数组的长度
i = 0
j = len(array[0]) - 1
while i < row_count and j >= 0:
value = array[i][j]
if value == target:
return True
elif value > target:
j -= 1
else:
i += 1
return False