行列都有序的二維陣列查詢問題
阿新 • • 發佈:2018-12-31
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
#include <iostream> #include <vector> using namespace std; 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 - 1 && j >= 0) { if (array[i][j] == target) return true; else if (array[i][j] < target) { i++; } else { j--; } } return false; } int main() { vector<vector<int>>v; vector<int>v1; vector<int>v2; vector<int>v3; v1.push_back(1); v1.push_back(2); v1.push_back(3); v2.push_back(4); v2.push_back(5); v2.push_back(6); v3.push_back(7); v3.push_back(8); v3.push_back(9); v.push_back(v1); v.push_back(v2); v.push_back(v3); cout << Find(3,v); cout << Find(33,v); return 0; }