zoukankan      html  css  js  c++  java
  • Leetcode: 74. Search a 2D Matrix

    Description

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

    • Integers in each row are sorted from left to right.
    • The first integer of each row is greater than the last integer of the previous row.

    Example

    Consider the following matrix:
    
    [
        [1,   3,  5,  7],
        [10, 11, 16, 20],
         [23, 30, 34, 50]
    ]
    
    Given target = 3, return true.
    

    思路

    • 从左下角或右上角开始找,大了就往上(下),小了就往右(左)

    代码

    class Solution {
    public:
        bool searchMatrix(vector<vector<int>>& matrix, int target) {
            int m = matrix.size();
            if(m == 0) return false;
            int n = matrix[0].size();
            
            int i = m - 1, j = 0;
            while(i >= 0 && j < n){
                if(matrix[i][j] == target)
                    return true;
                else if(matrix[i][j] > target)
                    i--;
                else j++;
            }
            
            return false;
        }
    };
    
  • 相关阅读:
    又回来咯
    4 20210412-1 原型设计作业
    3 20210405-1 案例分析作业
    202103226-1 编程作业
    阅读任务
    准备工作
    原型设计作业
    案例分析
    编程作业
    构建之法读后感
  • 原文地址:https://www.cnblogs.com/lengender-12/p/6925793.html
Copyright © 2011-2022 走看看