#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;
}