題目:在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
思路:從第一行最後一個數開始查找,要找的數大於這個數,則當前列不變,行加加;要找的數小於這個數,當前行不變,列減減;否則說明找到了。
bool Find(int target, vector<vector<int> > array) {
int rows=array.size();
int cols=array[0].size();
//從第一行最後一個數據開始查找
int i=0;
int j=cols-1;
while(i<rows && j>=0)
{
if(target>array[i][j])
{
i++;
}
else if(target<array[i][j])
{
j--;
}
else
{
return true;
}
}
return false;
}