牛客網劍指offer—題目一在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數
在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
思路:因為是隻需判斷有無該整數,所以用bool函式,返回false或true
假設是這樣一個數組,所以從選左下角或者右上角的數字為第一個進行判斷,以左下角6為第一個數進行判斷 為例,假設目標數為9, 9>6,因此在6所在行的右邊,然後9>8,繼續往右走,9<11,所以在11所在列,9=9,找到,返回true。
程式碼:
class Solution {
public:
bool Find(int target, vector<vector<int> > array)
{
int m=array.size();
int n=array[0].size();
int row=m-1;
int column=0;
if(m==0&&n==0)
return false;
while(row>=0&&column<n)
{
if(target>array[row][column])
column++;
else if (target<array[row][column])
row--;
else
return true;
}
return false;
}
};