题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路:在一个数组中查找一个整数,只有两种情况在或者不在,由题可知左上角元素值最小,右下角元素值最大,因此只要要查找的关键值在范围内就进入循环体,否则返回false。话不多少,献上代码:
代码实现:
class Solution { public: bool Find(int target, vector<vector<int> > array) { int rows = array.size(); int cols = array[0].size(); int i=rows-1,j=0; //if(array[0][0]>target&&array[rows][array.size()]) // return false;判断关键值target是否在数组中 while(i>=0 && j<cols){ if(target<array[i][j]) i--; else if(target>array[i][j]) j++; else return true; } return false; } };
|