首先得弄懂题目的意思:行列均递增有序。利用这个特点从左下角开始对比,小于x就往右边更大的找,大于x就往上面更小的找。
bool Find(int target, int** array, int arrayRowLen, int* arrayColLen ) {
int m = arrayRowLen;
int n = *arrayColLen;
int i = m-1, j = 0;
while(i >= 0 && j < n){
if(array[i][j] == target)
return true;
else if(array[i][j] < target)
j++;
else
i--;
}
return false;
}

京公网安备 11010502036488号