二维数组查找

#Problem Description:
# 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,
# 每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个
# 整数,判断数组中是否含有该整数。

class Solution:
    # array 二维列表
    def Find(self, target, array):
        row = len(array)-1        #行数
        col = len(array[0])-1     #列数
        i = 0
        j = col
        while j>=0 and i<=row:
            if array[i][j]>target:
                j-= 1
            elif array[i][j]<target:
                i+= 1
            else:
                return True
        return False  
    
matrix = [[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]
s = Solution() 
print(s.Find(5,matrix))

  

#Summary:
#思维关键点是矩阵左下角或者右上角,如果是左下角,比其小的,行-1继续查找,如果比起大,列+1继续查找,右上角则相反
#技术总结 ①二维数组的两种定义方法:list 或者numpy.array()
# ②list可以装不同类型元素int float str,array只能装同种类型
# ③获取元素方法list[0][1],array[0,1]
# ④list转换array调用numpy模块中的array方法 np.array(list)

posted @ 2018-09-04 11:26  九层之台起于累土  阅读(111)  评论(0编辑  收藏  举报