1. 程式人生 > >牛客66題(1)二維陣列查詢

牛客66題(1)二維陣列查詢

在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int j=0;
       int row=array.size()-1;//行數
        int col=array[0].size()-1;
        if(array.size()!=0)
        {  
         while(row>=0&&j<=col)//搜尋終點設定(0,col)
          {
           if (array[row][j]==target)//搜尋起點(row,0)
             return true;
           else
             if (array[row][j]>target)
                     --row;
             else ++j;    
          }         
        }
       return false;
        }
};

總結:首先該題二維陣列由上到下,由左到右遞增狀態,要找某個數則考慮從陣列的左下角或右上角作為起點,建立迴圈比較,若比目標值大向小方向搜尋,否則向大方向搜尋。

流程:(1)求出二維陣列的大小

(2)看陣列大小程式碼魯棒性

(3)設定迴圈終止條件while迴圈

(4)迴圈內部判斷與目標值的大小關係

(5)更改搜尋方向
--------------------- 
作者:libinxxx 
來源:CSDN 
原文:https://blog.csdn.net/libinxxx/article/details/82666327 
版權宣告:本文為博主原創文章,轉載請附上博文連結!