1 /* 2 題目描述 3 在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。 4 請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 5 */ 6 7 /* 8 Time:2016-9-8 15:44:52 9 Author:CodingMengmeng 10 */ 11 #include <iostream> 12 #include <vector> 13 using namespace std; 14 /* 思路 15 * 矩陣是有序的,從左下角來看,向上數字遞減,向右數字遞增, 16 * 因此從左下角開始查找,當要查找數字比左下角數字大時。右移 17 * 要查找數字比左下角數字小時,上移 18 */ 19 class Solution { 20 public: 21 bool Find(vector<vector<int> > array, int target) 22 { 23 /*二維數組的行數和列數*/ 24 int rowCount = array.size(); 25 int colCount = array[0].size(); 26 27 int i, j;//i指定行的變化,j指定列的變化 28 29 //循環 30 for (i = rowCount - 1, j = 0; i >= 0 && j<colCount;) 31 { 32 if (target == array[i][j]) 33 return true; 34 35 if (target<array[i][j]) 36 { 37 i--; 38 continue; 39 } 40 41 if (target>array[i][j]) 42 { 43 j++; 44 continue; 45 } 46 } 47 return false; 48 } 49 };