二维数组查找——剑指offer

Posted 程序员简笔

tags:

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

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

技术分享
 1 #include <stdio.h>
 2 #include<stdbool.h>
 3 int main()
 4 {
 5     int find(int  matrix[4][4], int rows, int columns, int number);
 6     int a[4][4] = {{ 1, 2, 8, 9 }, 
 7                    { 2, 4, 9, 12 }, 
 8                    { 4, 7, 10, 13 }, 
 9                    { 6, 8, 11, 15 } };
10     int result = find(a, 4, 4, 12);
11     if (result == 1)
12         printf("已经查到\n");
13     else
14         printf("数组中没有此元素\n");
15     return 0;
16 }
17 int find(int  matrix[4][4], int rows, int columns, int number)
18 {
19     bool found = false;
20     if (matrix != NULL && rows>0 && columns>0)
21     {
22         int a = 0;
23         int b = columns - 1;
24         while (a<rows && b >= 0)
25         {
26             if (matrix[a][b] == number)
27             {
28                 found = true;
29                 break;
30             }
31             else if (matrix[a][b]> number)
32                 --b;
33             else
34                 ++a;
35         }
36     }
37     return found;
38 }
View Code

 

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

Java 剑指offer 二维数组中的查找

[剑指Offer]5.二维数组中的查找

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

剑指offer-2(二维数组中的查找)

[剑指offer] 二维数组中的查找

剑指offer之二维数组中的查找