LeetCode---Search a 2D Matrix II

来源:互联网 发布:体检 知乎 编辑:程序博客网 时间:2024/06/14 02:01

题目大意:给出一个二维数组,判断目标数是否在数组中,数组中元素从左到右一次递增,从上到下一次递增。

算法思想:

1.计算出数组的行数和列数。

2.将目标数和数组中右上角的元素比较,如果目标元素小于该数则说明该数所在列中的元素都大于目标数,应该缩小列数;如果目标数大于该数,则说明该数所在的行中所有的数都大于该数,应该增大行数;如果目标数等于该数,则说明目标数在数组中存在。

代码如下:

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 row=0,column=n-1;        while(row<m&&column>=0){            if(target<matrix[row][column])             --column;             else if(target>matrix[row][column])             ++row;             else                 return true;        }        return false;    }};


0 0
原创粉丝点击