【数组】二维数组中的查找【剑指offer】
二维数组中的查找
http://www.nowcoder.com/questionTerminal/abc3fe2ce8e146608e868a70efebf62e
#include <iostream> #include <vector> using namespace std; //思路:先拿右上角的元素与待查找元素比较,如果该元素等于待查找元素,返回true;如果该元素小于待查找元素,行数加一;如果该元素小于待查找元素,列数减一。 class Solution { public: bool Find(int target, vector<vector<int> > array) { if(array.size() == 0) return false; int row = 0; int rows = array.size(); // 行 int colunms = array[0].size(); // 列 int colunm = colunms - 1; while(row < rows && colunm >= 0) { if(target == array[row][colunm]) return true; else if(target > array[row][colunm]) row++; else colunm--; } return false; } }; int main() { vector<vector<int> > v; vector<int> a; for(int i=0;i<8;i++) a.push_back(i); for(int j=0;j<3;j++) v.push_back(a); Solution so; cout<<so.Find(0, v)<<endl; }