二维数组查找

Posted Actexpler

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维数组查找相关的知识,希望对你有一定的参考价值。

问题描述

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

特点:如下图,基本上是一个m*n的矩阵,排列顺序如题目描述的一样

思路:从右上角的数开始查找,对于右上角的数来说,他的左侧的数比自己小,下方的数比自己大,如图:将待查找的数据与右上方的数比较时,如果比9小,查再查找9左边的数,如果比9大,则继续查找9下方的数,依次继续比较,知道找到或者x>=矩阵行数或者y<0,换句话说就是都出矩阵边界了还没有找到的话就不存在。

public class Solution {
    public boolean Find(int target, int [][] array) {
        int row=array.length;
      System.out.println(row);
      int width=array[row-1].length;
      System.out.println(width);
      int x=0;
      int y= width-1;
      while(x<row&&y>-1){
          if(array[x][y]==target){
              return true;
          }else if(array[x][y]>target){
              y--;
          }else if(array[x][y]<target){
              x++;
          }
      }
      return false;
    }
}

 

以上是关于二维数组查找的主要内容,如果未能解决你的问题,请参考以下文章

二维数组中的查找

二维数组的查找

二维数组中的查找

6-二维数组中的查找

剑指offer04二维数组中的查找

排序和查找3