在乙個二維陣列中,每一行都會按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否包含這個整數。12
8924
91247
101368
1115
上面就是滿足要求的乙個二維陣列,輸入整數7,返回true;輸入5,返回false。
#include #include using namespace std;
//二維陣列傳參的方式要先定義列數
bool find(int arr[4],int rows,int number)else if(arr[row][col] < number)else
} return isflag;
}int main(),,,};
int row = 3,col = 0;
int number = 5;//這裡是要查詢的整數
if(find(arr,4,number)) cout<<"true";
else cout<<"false";
return 0;
}
二維陣列傳參的時候,要注意要定義列數。演算法是根據每次排查二維陣列的左下角的元素,如果要查的整數小於它,根據矩陣從左向右遞增的規律,它右邊的數隻會更大,要查的數會依舊小於它們,所以果斷排除這一行;如果要查的整數大於它,同理可以排除這一列。按照這樣的規律,把原先的二維陣列不斷縮小排查範圍,最後要麼查到乙個元素等於整數,要麼超過陣列的邊界,達到查詢的目的。 劍指offer面試題4 二維陣列的查詢
題目 二維陣列的查詢 在乙個二位陣列中,每一行都遞增,每一列的遞增,請完成乙個函式,查詢二維陣列中是否有number 方案 只需要每次從二維陣列的右上角開始查詢就可以了,因為如果右上角的數字都大於要查詢的number的話,那麼這一列肯定都大於number,我們只需要在剩下的列中找就行了,如果右上角的...
劍指offer面試題4 二維陣列中的查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。include include using namespace std class solution else...
劍指offer 面試題4 二維陣列中的查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution def find self,array,target 判斷陣列是否為空 if a...