题目描述:
在一个m行n列的二维数组中,每一行都按照从左到有的递增顺序排列,每一列都按照从上到下递增顺序排列。现输入这样一个二维数组和整数,判断该数组是否含有该整数!
O(m+n)

此处)折叠或打开


1. #include<iostream>
2. ;
3. //const int COL = 4;
4. //const int ROW = 4;
5. (int **array,int Col,int Row,int searchKey)//注意这里的参数传递
6. {
7. int row = 0;
8. int col = Col-1;
9.      
10. //    int compare = array[0][COL-1];
11. while (1)
12. {
13. if (array[row][col] == searchKey)
14. {
15. true;
16. }
17. else if (array[row][col] > searchKey && row < Row-1)
18. {
19. ++row;
20. }
21. else if (array[row][col] < searchKey && col >= 0)
22. {
23. --col;
24. }
25. else
26. false;
27. }
28.  
29. }
30. int main()
31. {
32. int COL,ROW;
33. >> COL;
34. >> ROW;
35. int **a = new int *[ROW];
36. for (int i = 0;i < COL;i++)
37. {
38. [i] = new int[COL];
39. }
40. for (int i = 0;i < ROW;i++)
41. {
42. for (int j = 0;j < ROW;j++)
43. >> a[i][j];
44. }
45. //    int a[][4] = {1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
46. << find(a,COL,ROW,18)<< endl;
47. ;
48.      
49. }