题目要求:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
本人思路:采用的和剑指offer上一样的方法,从二维数组的右上角的元素开始比较,相等就直接返回,如果元素比查找的数字大就剔除这一列,比查找的数字小就剔除这一行,逐渐遍历直到找到该数字或者到左下角的元素后说明没有这个数字!还有一些具体的想法思路会在代码中逐行解释,记录思路的同时希望帮助一些小白更好地理解,代码如下所示:
#include<iostream>
#include <vector>
using namespace std;
class Solution {
public:
//采用vector类型表示二维数组,因为采用二维指针int **array或int array[][]都不行,具体原因暂不知
bool Find(int target, vector<vector<int>> array) {
//判断二维数组的行列是否为空,空就直接返回false
if (array.siz