1.二维数组中的查找——剑指offer

题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

解题思路

* 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,

* 因此从左下角开始查找,当要查找数字比左下角数字大时。右移

* 要查找数字比左下角数字小时,上移

 1 class Solution {
 2 public:
 3     bool Find(int target, vector<vector<int> > array) {
 4      int length = array.size();
 5      int width = array[0].size();
 6         int i = length - 1;
 7         int j = 0;
 8         while(j < width && i >= 0){
 9             if(target > array[i][j])
10                 ++j;
11             else if(target < array[i][j])
12                 --i;
13             else return true;
14         }
15         return false;
16     }
17 };

 

 
posted @ 2019-04-28 21:53  unique_ptr  阅读(186)  评论(0编辑  收藏  举报