一个m*n的矩阵,从左到右从上到下都是递增的,给一个数elem,求是否在矩阵中。
bool find(int **a, int m, int n, int k)
{
int (*p)[n] = (int (*)[n])a;
int i = 0;
int j = n-1;
while (i < m && j >= 0)
{
if (p[i][j] == k)
{
return true;
}
else if (p[i][j] < k)
{
i++;
}
else
{
j--;
}
}
return false;
}
int main()
{
int a[4][4] = {{1, 2, 8, 9}, {2, 4, 9, 12}, {4, 7, 10, 13}, {6, 8, 11, 15}};
cout << find((int **)a, 4, 4, 16) << endl;
return 0;
}b