版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jesmine_gu/article/details/82787721
题目描述:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
最粗暴的做法,对数组中的数字一个个遍历过去。最差情况下的时间复杂度是O(rows*cols)
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
rows = len(array) # 行数
cols = len(array[0]) # 列数
for i in range(rows):
for j in range(cols):
if(array[i][j] == target):
return True
return False
考虑题目本身的的特性,每行每列都是有序的数组
每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
rows = len(array) # 行数
cols = len(array[0]) # 列数
i = 0
j = cols-1
while i<rows and j>=0:
if(array[i][j] == target):
return True
elif(array[i][j] > target):
j -= 1
elif(array[i][j] < target):
i += 1
return False
希望一年后能到心仪的城市找到心仪的工作,从提高自己的渣渣编程能力开始!
给自己立个flag:
暂时一周3-5题的题量,不求多,但求每题都能认真去做!