leetcode, 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。给定一个目标数代码 行从左到右递增,列从上到下递增,找目标值

字节
讲思路在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,给定一个目标数,判断是否在矩阵中。

先看target是不是大于第一行最右边的(最大值),
大于然后对比往下一行的最大值,
小于就跟当前一列的值往左对比。。

二维数组是从左到右递增,从上到下递增,row为行数,col为列数,a[row-1][col-1]为最大数,如果剔除这一行,这一列,则最大数为a[row-2][col-2],如果要查找的num小于a[row-2][col-2]并且大于a[row-1][col-1],则在该row-1行和col-1列查找,照这样遍历。

def find(target, array): #find target number in arrayi = 0j = len(array[0]) - 1while i < len(array) and j >= 0:base = array[i][j]if target == base:return Trueelif target > base: i += 1else:j -= 1return Falseprint(find(11212,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]))


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部