牛客66題(1)二維陣列查詢
阿新 • • 發佈:2018-11-24
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
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
版權宣告:本文為博主原創文章,轉載請附上博文連結!