/**
* 面试题4:二维数组中的查找
* 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
* 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
* @author
* @create 2021-03-10 10:30
*/
public class Solution4 {
public static void main(String[] args) {
int[][] arr = new int[][]{{1,2,8,9},
{2,4,9,12},
{4,7,10,13},
{6,8,11,15}};
boolean res = isExit(arr, 7);
System.out.println(res);
}
public static boolean isExit(int[][] arr, int target){
// int row = arr.length;
// int col = arr[0].length;
// for (int i = 0; i < row;){
// for (int j = 0; j < col;){
// //如果target大于左下角的值,就向右边查找,列+1
// if (target > arr[row-1-i][j]){
// j++;
// }else if (target < arr[row-1-i][j]){
// //如果target小于左下角的值,就向上边查找,行-1
// i++;
// }else {
// return true;
// }
// }
// }
int i = arr.length-1, j = 0;//从左下角开始查找
while (i >= 0 && j < arr.length){
//如果target大于左下角的值,就向右边查找,列+1
if (target > arr[i][j]){
j++;
}else if(target < arr[i][j]){
//如果target小于左下角的值,就向上边查找,行-1
i--;
}else {
return true;
}
}
return false;
}
}
【剑指Offer】面试题4:二维数组中的查找
最新推荐文章于 2021-06-29 16:12:36 发布