劍指offer筆記 面試題4 二維陣列中的查詢

2021-10-25 20:25:52 字數 1539 閱讀 9264

問題描述:在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該函式

例如輸入陣列

1 2 8 9

2 4 9 12

4 7 10 13

6 8 11 15

輸入整數7時函式返回true,輸入5時返回false

**

#include

/** * 判斷一二維陣列中是否含有某整數,從陣列右上角元素入手

* @param a (一維)陣列指標

* @param rows 陣列行數

* @param columns 陣列列數

* @param number 查詢的整數

* @return 若該陣列中含有整數number則返回1,否則返回0

*/bool

find1

(int

*a,int rows,

int columns,

int number)

}return

false;}

/** * 判斷一二維陣列中是否含有某整數,從陣列左下角元素入手

* @param a (一維)陣列指標

* @param rows 陣列行數

* @param columns 陣列列數

* @param number 查詢的整數

* @return 若該陣列中含有整數number則返回1,否則返回0

*/bool

find2

(int

*a,int rows,

int columns,

int number)

}return

false;}

intmain()

;// 這裡用一維陣列儲存二維陣列

std::cout <<

"please input the number you want to find:"

<< std::endl;

int number;

std::cin >> number;

std::cout <<

find1

(a,4,4

, number)

<<

'\t'

<<

find2

(a,4,4

, number)

<< std::endl;

std::cout <<

"please input the number you want to find:"

<< std::endl;

std::cin >> number;

std::cout <<

find1

(a,4,4

, number)

<<

'\t'

<<

find2

(a,4,4

, number)

<< std::endl;

return0;

}

劍指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...