第一个Java程序,过得还算顺利。
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
public class Solution {
public boolean Find(int target, int [][] array) {
int m = array.length-1;//行
int n = 0;//列
while(m >= 0 && n < array[0].length){
if(target > array[m][n]){
n++;
}else if(target < array[m][n]){
m--;
}else {
return true;
}
}
return false;
}
}
我用的是从左下角开始寻找的一个方法。在二维数组中
①如果该值大于左下角的值,那么就向右移动查找
②如果该值小于左下角的值,那么就向上移动查找
③如果该值等于左下角的值,那么就直接给返回值true
④如果都不满足,那么就直接给返回值false
int m为行数,n为列数,行一直向上移动,当然是m–,列一直向右移动,当然是n++,值得注意的就是m、n的初始值的大小。最后就是代进while和if循环中,一气呵成,就OK了!
int target:代入该方法变量值的大小
int [][] array:代入该方法的二维数组
array.length:该数组的行长度
array.length[0]:该数组的列长度