Posted on 2014-01-11 02:27
Uriel 阅读(107)
评论(0) 编辑 收藏 引用 所属分类:
LeetCode
给定一个2D矩阵,每一行为递增的数,且下一行的第一个数大于上一行的最后一个数,在该矩阵中查找某一元素是否存在
感觉我的方法可能不是最优的,具体是:第一列的数往下找,如果大于了要找的数就break,在其上一行中找待查数,如果已经找到最后一行了就在最后一行找待查数,找不到返回false
1 class Solution {
2 public:
3 bool searchMatrix(vector<vector<int> > &matrix, int target) {
4 int n = matrix.size();
5 int m = matrix[0].size();
6 int i, j;
7 for(i = 0; i < n; ++i) {
8 if(matrix[i][0] > target) {
9 --i;
10 break;
11 }
12 if(i == n - 1) break;
13 }
14 if(i < 0) return false;
15 for(j = 0; j < m; ++j) {
16 if(matrix[i][j] == target) return true;
17 }
18 return false;
19 }
20 };