1. 程式人生 > >二維數組查找——劍指offer

二維數組查找——劍指offer

判斷 found display col -a == std != 查找

題目:在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序,請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否有該整數。

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