杨氏矩阵特点:
从左到右递增,从上到下递增的二位数组;
解题思路:以右上角元素为基准,开始比较,见下图
#define CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int find_date(int arr[][3], int row,int num)
{
int i = 0;
int j = 2;
while (i < row && j >= 0)
{
if (arr[i][j]>num)
{
j--;
}
else if (arr[i][j] < num)
{
i++;
}
else
{
return arr[i][j];
}
}
return -1;
//printf("%d\n", sizeof(arr));//4
}
int main()
{
int arr[3][3] = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
int num = 70;
int ret = find_date(arr, 3, num);
printf("%d\n", ret);
system("pause");
return 0;
}