数组:二维数组中的查找

Posted carry6

tags:

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

2019-09-13

题目描述

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

解题思路

   从题目上看,此二维数组是有序的,从右上角看,向左递减,向下递增。

    1. 从右上角arr[1][j]开始找,如果arr[1][j] > N,则左移;
    2. 如果arr[1][j] < N, 则下移;
    3. 如果超过边界,则N不在该二维数组中;

参考代码

 1 public class Solution 
 2     public boolean Find(int target, int [][] array) 
 3         if(array.length == 0 || array[0].length == 0) 
 4             return false;
 5         
 6         int m = array.length - 1;
 7         int n = 0;
 8         int temp = array[n][m];
 9         while(temp != target) 
10             if(m > 0 && n < array.length - 1) 
11                 if(temp < target) 
12                     n++;
13                 
14                 if(temp > target) 
15                     m--;
16                 
17                 temp = array[n][m];
18             else 
19                 return false;
20             
21         
22         return true;
23     
24 

 

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

二维数组中的查找

二维数组中的查找

二维数组中的查找

C++中如何在一个二维数组中查找某个值

《剑指Offer》二维数组中的查找

二维数组中的查找-剑指Offer