Leetcode12: Search a 2D Matrix

Write an efficient algorithm that searches for a value in anmxnmatrix. 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]]

Giventarget=3, returntrue.

这是一个杨氏矩阵,即每一行是递增的,,每一列也是递增的。根据递增性质,我们对每一行只搜索最后一个数,如果小于target那么前往下一行,如果大于target那么说明在这一行,于是前往前一列,直到找到该数。

class Solution {public:bool searchMatrix(vector<vector<int> > &matrix, int target) {int m = matrix.size();int n = matrix[0].size();for(int row = 0, col = n-1; row < m && col >= 0;){if(matrix[row][col] < target){row++;}else if(matrix[row][col] > target){col–;}elsereturn true;}return false;}};

这道题难度是medium,本来我打算先把easy难度的做完在考虑中等难度的。偶然看了七月算法的视频(排序查找实战),受益匪浅,决定对讲过的例题进行巩固消化,于是先把这道题做了,算法思路来源于曹博,学习了!

想要成功,就一定要和成功的人在一起,不然反之

Leetcode12: Search a 2D Matrix

相关文章:

你感兴趣的文章:

标签云: