首页 > 编程语言 > 详细

二维数组查找——剑指offer

时间:2017-08-17 17:44:01      阅读:268      评论:0      收藏:0      [点我收藏+]

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

技术分享
 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

原文:http://www.cnblogs.com/xyzyj/p/7383047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!