题目大意:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路:
(1)一看到有序数组就想到了二分法查找,而在这个二维数组中,无法先按行或者先按列查找
(2)看了一下,不能从左上角和右下角开始查找和比较元素(不知道向下还是向右)
(3)不能从中间对角线开始比较(二异性)
正确的是:从左下角或者右上角开始比较。(例如右上角)因为这样元素大就可以向下移动元素小就可以向左移动
代码如下:
public class Solution {
public boolean Find(int [][] array,int target) {
int row=0,col=array[0].length-1;
while(row<array.length && col>=0){
if(array[row][col]==target){
return true;
}else if(array[row][col]<target){
row++;
}else{
col--;
}
}
return false;
}
}
转载请注明原文地址: https://ju.6miu.com/read-1125532.html