題目:在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。


 

 

 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 };

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM