leetcode刷題 二維陣列中的查詢

2021-10-08 20:12:49 字數 1148 閱讀 1127

題目

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

示例:現有矩陣 matrix 如下:

[[1, 4, 7, 11, 15],

[2, 5, 8, 12, 19],

[3, 6, 9, 16, 22],

[10, 13, 14, 17, 24],

[18, 21, 23, 26, 30]

]給定 target = 5,返回 true。

給定 target = 20,返回 false。

思路:

觀察二維陣列陣列特性:每一行從左到右遞增的順序排序,每一列從上到下遞增,所以將右上角元素作為flag元素,如果輸入的target比flag小,如果該target存在只可能在flag元素所在行的左邊找到該元素,所以向左移一列(行從左到右遞增,小的元素在flag的左邊),如果輸入的target比flag大,說明flag所在行的元素都比target小,向下移動一行,直到找到該元素。

**

bool findnumberin2darray

(int

** matrix,

int matrixsize,

int* matrixcolsize,

int target)

for(

int i =

0, j =

*matrixcolsize -

1;i < matrixsize && j >=0;

)else

if(target > matrix[i]

[j])

else

}return false;

}

知識點

二維陣列判空:

matrix == null || matrixsize == 0 || matrixcolsize == 0

matrix == null判斷該二位陣列是否存在;

matrixsize == 0 || matrixcolsize == 0表示判斷二維陣列的行或者列是否全為0

刷題 二維陣列查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。package timufuxi public class kaoshi boolean symbol sol...

C 刷題 二維陣列

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。分析 二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排...

python 刷題 二維陣列中的查詢

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。輸入描述 array 待查詢的二維陣列 target 查詢的數字 輸出描述 查詢到返回true,查詢不到返回false coding ...