力扣——240.搜索二维数组II(c语言)

发布时间 2023-04-22 13:54:14作者: 调蓝师
title: 力扣——240.搜索二维数组II(c语言)

同《剑指offer》04

题目描述:

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。
每列的元素从上到下升序排列。

示例1:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出:true

示例2:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
输出:false

提示:

m == matrix.length
n == matrix[i].length
1 <= n, m <= 300
-109 <= matix[i][j] <= 109
每行的所有元素从左到右升序排列
每列的所有元素从上到下升序排列
-109 <= target <= 109

代码如下:

bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target){
    if(NULL == matrix){
        return false;
    }
    bool found = false;
    int row = 0;
    int column = matrixColSize[0]-1;
    while(row<matrixSize && column>=0)
    {
        if(target == matrix[row][column]){
            found = true;
            break;
        } else if(target > matrix[row][column]){
            ++row;
        } else{
            --column;
        }     
    }
    return found;
}

执行结果:

通过

显示详情

执行用时:76 ms, 在所有 C 提交中击败了51.45%的用户

内存消耗:9.3 MB, 在所有 C 提交中击败了5.02%的用户