题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路
我们从右上角的那个数开始走,如果给定的数比当前数大,说明要找的数在当前列的下面,所以直接让行++,如果给定的数比当前数小,说明在当前数的右边,所以让列- -,一直循环,一直到数组越界条件触发还没有找到,则为没有
关于本题参数说明
本体参数是一个二维数组
二维数组,先是用一个列数组保存每个行数组的首地址,所以先有列再有行,所以两个vector里面的代表列,外面的代表行,要想获取二位数组一行有多少个元素,则直接用外面代表行的vector的大小就行,获取一列有多少个元素,则直接用里面的vector的大小。
class Solution {
public:bool Find(int target, vector<vector<int> > array) {int row = array.size();//行数int col = array[0].size();//列数int i = 0;int j = col-1;while(i<row&&j>=0){if(target == array[i][j])return true;else if(target > array[i][j])i++;else j--;}return false;}
};