題目描述
在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
思路:從右上方開始查找,當大於該值,則該值對應的列值更大,刪除,當小於該值,則刪除該值對應的行,以此進行。
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
if(array.size()==0)
return false;
int rows=array.size();
int cols=array[0].size();
int row=0;
int col=cols-1;
while(row<rows&&col>=0)//不會超出該矩陣的範圍
{
if(array[row][col]==target)
return true;
else if(array[row][col]>target)//從右上角開始比較,若大於目標值,則該列被刪除
col--;
else//若小於目標值,則該行被刪除
row++;
}
return false;
}
};