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 };