题解 | #二维数组中的查找#

二维数组中的查找

https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

从左下角搜索到右上角(反过来也可以,原理一样)。因为数组从上到下、从左到右是有序的,所以如果当前查找的数大于target,那么其上方的数也一定会大于target;如果当前查找的数小于target,那么其左边的数也一定会小于target。

bool Find(int target, int** array, int arrayRowLen, int* arrayColLen ) {
    int m = arrayRowLen - 1, n = 0;
    while (m >= 0 && n < *arrayColLen) {
        if (array[m][n] == target) return true;
        else if (array[m][n] > target) m--;
        else n++;
    }
    return false;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务