LeetCode 74 Search a 2D Matrix(搜索2D矩阵)

Posted nomasp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 74 Search a 2D Matrix(搜索2D矩阵)相关的知识,希望对你有一定的参考价值。

翻译

写一个高效算法用于在一个m x n的矩阵中查找一个值。
这个矩阵有如下属性:

每行的整型数都是从左到右排序的。
每行的第一个元素都比上一行的最后一列大。

例如,
考虑如下矩阵:
[
  [1,   3,  5,  7],
  [10, 11, 16, 20],
  [23, 30, 34, 50]
]
给定target = 3,返回true

原文

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.
For example,

Consider the following matrix:

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

分析

可能因为我好困了,所以不论是算法还是我自己,都效率很低……

下面这个代码也是一改再改……

bool searchMatrix(vector<vector<int>>& matrix, int target) {
    if (matrix[0][0] > target) return false;
    for (int i = 0; i < matrix.size(); ) {
        for (int j = 0; j < matrix[i].size(); ) {
            if (i == matrix.size() - 1 && matrix[i][j] < target) {
                if (j >= matrix[i].size()) return false;
                j += 1;
                if (matrix[i][j] > target) return false;
            }
            else if (matrix[i][j] < target && matrix[i+1][j] > target) {
                j += 1;
                if (j >= matrix[i].size()) return false;
                if (matrix[i][j] > target) return false;
            }
            else if (matrix[i][j] < target && matrix[i + 1][j] <= target) {
                i += 1;
            }
            else if (matrix[i][j] == target) {
                return true;
            }     
            if (i == matrix.size() - 1 && j == matrix[i].size() ) {
                return false;
            }
        }
    }
    return false;
}

明天再整理整理思路重新做一遍吧……

以上是关于LeetCode 74 Search a 2D Matrix(搜索2D矩阵)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 74 Search a 2D Matrix ----- java

LeetCode 74.Search a 2D Matrix Java

19.2.13 [LeetCode 74] Search a 2D Matrix

[LeetCode] 74. Search a 2D Matrix 搜索一个二维矩阵

leetCode 74.Search a 2D Matrix(搜索二维矩阵) 解题思路和方法

LeetCode 74 Search a 2D Matrix(搜索2D矩阵)