LeetCode74——Search a 2D Matrix

本题比较简单,我是用最简单的思想来思考的,既然每行都有序,我先利用vector支持随机查找的策略,比较vector每一行末尾的元素,如果比末尾元素大则跳到下一行。如果下一行为最后一行+1那么返回false。那么比较过后,在下一行元素中进行一次遍历,找寻符合条件的数,找到返回true,没找到返回false。

class Solution
{
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) 
    {
        int tmp = 0;
        int row = matrix.size();
        int col = matrix[0].size();
        while(target > matrix[tmp][col - 1])
        {
            tmp++;
            if(tmp == row)
            {
                return false;
            }
        }
        for(int i = 0;i != col;++ i)
        {
            if(target == matrix[tmp][i])
            {
                return true;
            }
        }
        return false;
    }
};
原文地址:https://www.cnblogs.com/thewaytomakemiracle/p/5067018.html