题解 | #二维数组中的查找#
二维数组中的查找
http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
{
public boolean Find(int target, int [][] array)
{
int R_h =array.length; //R_h 这个数组有几行
int R_l =array[0].length;//R_h这个数组有几列
boolean result = false;
//开始扫描 从行开始扫描,固定一行每一行的每一个元素扫描一遍;
for(int hang = 0;hang<R_h;hang++ )
{
for(int lie = 0; lie<R_l;lie++)
{
//若有符合条件的,直接返回true;
if(array[hang][lie]==target)
result = true;
//若有比大于target元素的array[hang][lie],根据题目所示的数组中元素的规律,
//说明目标值target只可能在该元素的前一列array[hang][lie-1]
else if(array[hang][lie]>target)
{
//对该元素array[hang][lie]的前一列array[hang][lie-1]进行扫描,
for(int hang1=hang ; hang1<R_h;hang1++)
{
//注意,如果是第0列,就没有前一列。
if(lie>0&&array[hang][lie-1]==target)
result = true;
}
}
}
}
return result;
}
}
查看14道真题和解析
