二维数组中的查找
Posted baishouzu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维数组中的查找相关的知识,希望对你有一定的参考价值。
二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题解:做矩阵左下角或是右上角开始查询,当target存在的时候,当nums[i][j]<target的时候,j++;当nums[i][j]>target的时候,i--;注意i, j别越界。
完整代码
1 /** 2 * @author: wooch 3 * @create: 2020/02/14 4 */ 5 6 /** 7 * 面试题04. 二维数组中的查找 8 * 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 9 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 10 */ 11 public class P04_FindNumberIn2DArray { 12 public boolean findNumberIn2DArray(int[][] matrix, int target) { 13 if(matrix.length == 0){ 14 return false; 15 } 16 int n = matrix.length; 17 int m = matrix[0].length; 18 int i = 0; 19 int j = m - 1; 20 while (i < n && j >= 0) { 21 if (target < matrix[i][j]) { 22 j--; 23 } else if (target > matrix[i][j]) { 24 i++; 25 } else { 26 return true; 27 } 28 } 29 return false; 30 } 31 }
以上是关于二维数组中的查找的主要内容,如果未能解决你的问题,请参考以下文章