思路一:循环找
效率差
思路二:
因为从左到右从上到下都是递增的。
所以用数字和右上角的数字比较
如果要找的数字是7,则数字先与9比。比9小说明在9的左侧。
再与8比,比8小,说明在8的左侧。
与2比,比2大,在2的下侧。
比4大,在4的下侧。
#include <stdio.h>
bool Find(int *arr,int row,int col,int num)
{
bool isFound = false;
if(arr != NULL && row > 0 && col > 0)
{
int CurRow = 0;
int CurCol = col-1;
while(CurRow < row && CurCol >= 0)
{
//如果找到了,直接返回
if(arr[CurRow * col + CurCol] == num)
{
isFound = true;
break;
}
//如果右上角数字大于num,在右上角数字的左边
else if(arr[CurRow * col