二维数组中的查找_JAVA_较难
二维数组中的查找
http://www.nowcoder.com/questionTerminal/abc3fe2ce8e146608e868a70efebf62e
- 该二维数组行列有序,可使用排除思想
- 从右上角开始,该值为行最大值,列最小值
- target与之比较,如果找更小值就去行找,所在列全部排除,更大值就去列找,所在行全部排除
public class Solution {
public boolean Find(int target, int [][] array) {
int i = 0, j = array[0].length - 1;
// 右上角开始,行最大值,列最小值
while(i < array.length && j >= 0) {
// target小于比较值,就说明不会在该值所在列及右侧
if(array[i][j] > target) {
j--;
// target大于比较值,就说明不会在该值所在行及上侧
} else if(array[i][j] < target){
i++;
} else {
return true;
}
}
return false;
}
}