1、在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:因为横行都是递增的,竖行也为递增的,所以从右上角开始看,若果目标数比右上角的数大则向竖走(b+1),若果小则向左行走(a-1)
public class Solution {
public boolean Find(int target, int[][] array) {
if (array.length == 0 || array.length - 1 == 0)//判断数组长度是否为0,若为0则false
return false;
int a = array[0].length - 1;
int b = 0;
int temp = array[b][a];
while (target != temp) {//判断和目标是否相等若不相等,则下面继续循环,若相等则true
if (a >0 && b < array.length - 1) {
if (target > temp){
b=b+1;
}else if (target < temp) {
a=a-1;
}
temp=array[b][a];//将现在的数组坐标重新的赋值给temp
} else {
return false;
}
}
return true;
}
}
版权声明:本文为qq_43440595原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。