一个m*n的矩阵,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中。

来源:互联网 发布:进销存哪个好 知乎 编辑:程序博客网 时间:2024/05/20 08:25

基本思想:
1、选取矩阵右上角的数字;
2、如果选取得数字等于要查找的数字,查找结束;
3、如果选取的数字大于要查找的数字,所在的列col–;
4、如果选取的数字小于要查找的数字,所在的行row++。

bool Find(int *arr, int rows, int cols, int n){    bool flag = false;    if (arr!=NULL&&rows > 0 && cols > 0)    {           int row = 0;        int col = cols - 1;        while (row<rows&&col>=0)        {            if (arr[row*cols + col] == n)            {                flag = true;                break;            }               else if (arr[row*cols + col] > n)                col--;            else                row++;        }    }    return flag;}
阅读全文
0 0
原创粉丝点击