剑指Offer面试题:2.二维数组中的查找
一 题目:二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的二维数组和一个整数判读数组中是否含有该整数。
二 代码实现
#include "stdio.h" #include <iostream> using namespace std; int a[16] = {1,2,8,9, 2,4,9,12, 4,7,10,13, 6,8,11,15}; bool Find(int *a, int row, int col, int data) { int i = row - 1; int j = 0; bool bFind = false; if (a) { while (i >=0 && j < col) { if (data > a[i+j*col]) { j ++; } else if (data < a[i+j*col]) { i --; } else { bFind = true; cout << i << " " << j << endl; break; } } } return bFind; } void main() { bool ret = Find(a, 4, 4, 11); cout << ret << endl; return; }
>>> 2 3
>>> 1