剑指offer面试题4: 二维数组中的查找

时间:2022-02-03 11:49:07

题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
#include <iostream>
#include <vector> using namespace std; class Solution {
public:
bool Find(int target, vector<vector<int> > array)
{
unsigned rows = array.size();
unsigned cols = array[].size();
if (array.size() > && rows > && cols > )
{
int row = ;
int col = cols - ;
while(row < rows && col >= )
{
if (array[row][col] == target) {
return true;
}
else if (array[row][col] > target) {
--col;
}
else {
row++;
}
}
}
return false;
}
}; int main()
{
vector<vector<int> > v;
v.push_back({,,,});
v.push_back({,,,});
v.push_back({,,,});
v.push_back({,,,}); Solution s;
if (s.Find(, v))
{
cout << "True" << endl;
}
else {
cout << "False" << endl;
} if (s.Find(, v))
{
cout << "True" << endl;
}
else {
cout << "False" << endl;
}
return ;
}