Note: This article is available in Chinese only. 本文暂无英文版本。
View original
题意:给一个二维数组。。。每一行每一列都分别递增。。问某个value是否出现过。。。
思路:单调。。显然二分。。。唯一的技巧是从右上角开始搜。
1/* ***********************************************
2Author :111qqz
3Created Time :2017年03月09日 星期四 19时03分07秒
4File Name :74.cpp
5************************************************ */
6class Solution {
7
8public:
9
10 bool searchMatrix(vector<vector<int>>& matrix, int target) {
11
12 int n = matrix.size();
13 if (n==0) return false;
14 int m = matrix[0].size();
15 if (m==0) return false;
16 int row = 0 ;
17 int col = m-1;
18 while (col>=0&&row<n)
19 {
20 if (matrix[row][col]==target) return true;
21 else
22 if (matrix[row][col]>target) col--;
23 else row++;
24 }
25 return false;
26
27 }
28
29};