#include <stdio.h>
// int main()
// {
// int a[5] = {1,2,3,4,5};
// int* ptr = (int*)(&a+1);
// printf("%d %d", *(a+1), *(ptr-1));
// return 0;
// }
//杨氏矩阵,o(n)的空间复杂度,找数字
// int find_num(int arr[3][3], int r, int c, int k)
// {
// int x = 0;
// int y = c -1;
// while (x<r && y>=0)
// {
// if(arr[x][y] < k)
// {
// x++;
// }
// else if (arr[x][y] > k)
// {
// y--;
// }
// else
// {
// return 1;
// }
// }
// return 0;
// }
int find_num(int arr[3][3], int* px, int* py, int k)
{
int x = 0;
int y = *py -1;
while (x< *px&& *py>=0)
{
if(arr[x][y] < k)
{
x++;
}
else if (arr[x][y] > k)
{
y--;
}
else
{
*px = x;
*py = y;
return 1;
}
}
return 0;
}
int main()
{
int arr[3][3] = {1,2,3,4,5,6,7,8,9};
int k = 7;
int x = 3;
int y = 3;
int ret = 0;
ret = find_num(arr,&x,&y,k);
if (ret==1)
{
printf("找到了,%d行,%d列\n", x, y);
}
else
printf("没找到\n");
return 0;
}