注:此博客不再更新,所有最新文章将发表在个人独立博客limengting.site。分享技术,记录生活,欢迎大家关注
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
**思路:**选取四个角中的某个中间数字开始比较,使得无论大于或者小于都可以去除一行或者一列。
public class Solution {
public static boolean Find(int target, int [][] array) {
if (array == null | array.length == 0 | array[0].length == 0) return false;
int row = 0, column = array[0].length - 1;
while (row < array.length && column>= 0) {
if (target > array[row][column]) row++;
else if (target < array[row][column]) column--;
else return true;
}
return false;
}
}
运行时间:124ms
占用内存:17420k