题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,
每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:想多说,在SLAM里程计代码中,比如:
vector<int>::itrator itr = found(vec.begin(), vec.end(), element_); //假设我们要在vec中查找 element_
if(itr == vec.end())//如果没找到
{
......
}
1 //题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序, 2 // 每一列都按照从上到下递增的顺序排序。 3 //请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 4 5 // 1 2 3 4 5 6 // 2 3 7 // 3 4 8 9 #include<vector> 10 #include<algorithm> 11 #include<iostream> 12 using namespace std; 13 14 bool Find(int target, vector<vector<int> > array) { 15 bool isfound = false; 16 for (size_t j = 0; j < array.size(); j++) // 10行 17 { 18 vector<int> row_j = array[j]; 19 vector<int>::iterator itr = find(row_j.begin(), row_j.end(), target); 20 if (itr != row_j.end())// 查找元素时候,经常用到的操作 21 { 22 isfound = true; 23 return isfound; 24 } 25 } 26 return isfound; 27 } 28 int main() 29 { 30 vector<vector<int>> _array; 31 for (size_t j= 0; j < 10; j++) 32 { 33 vector<int> temp; 34 for (size_t i = j; i < (j + 5); i++) 35 { 36 temp.push_back(i); 37 cout << i << " "; 38 } 39 _array.push_back(temp); 40 cout << endl; 41 } 42 bool _isfound = false; 43 _isfound = Find(13, _array); 44 return 1; 45 }