从第一行最右边开始找,如果想要更大的数,往下找;想要更小的数,往左;如果超出范围,说明没有;
public class Solution {
public boolean Find(int target, int [][] array) {
int rows = array.length;
int cols = array[0].length;
int i = rows - 1;
int j = 0;
while(i>= 0 && j < cols){
if(array[i][j]< target){
j ++;
}
else if(array[i][j]> target){
i--;
}
else{return true;}
}return false;
}
}
python
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
rows = len(array)
cols = len(array[0])
i = rows - 1
j = 0
while((i>=0)&(j<cols)):
if(array[i][j])>target:
i -= 1
elif(array[i][j]<target):
j += 1
else:
return True
return False