• 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;
        }
    };
    
  • 相关阅读:
    JUnit4.13环境配置
    OO第5-7次作业总结
    电梯的一点浅优化
    C++变量作用域、生存期、存储类别
    最后一次OO博客
    OO第三次总结
    OO第二次总结
    OO第一次总结
    POJ3934
    POJ刷题计划
  • 原文地址:https://www.cnblogs.com/lengender-12/p/6925793.html
Copyright © 2020-2023  润新知