28搜索二维矩阵
Posted roscangjie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了28搜索二维矩阵相关的知识,希望对你有一定的参考价值。
题目:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:
- 每行的元素从左到右升序排列。
- 每列的元素从上到下升序排列。
思路:这道题在很早以前已经学习过相关解法,所以一看到就有思路。
这道题的特点是:右上角的元素在一行中最大,在列中为最小。所以当一个数比它大时,肯定在列方向往下移动,当一个数比它小时,肯定在行方向往左移动。
所以将目标值与右上角函数来比较。
class Solution { public: bool searchMatrix(vector<vector<int> > &matrix, int target) { if(matrix.empty() || matrix[0].empty()) { return false; } int row=0; int col=matrix[0].size()-1; while(row<matrix.size() && col>-1) { if(target == matrix[row][col]){ return true; }else if(target < matrix[row][col] ) { col--; }else{ row++; } } return false; } };
以上是关于28搜索二维矩阵的主要内容,如果未能解决你的问题,请参考以下文章