在乙個 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。
限制:0 <= n <= 1000
0 <= m <= 1000
解法:因為二維陣列是有序的,所以可以通過從右上角開始查詢,如果值大於目標值,向左走,如果值小於目標值,向下走。這樣最大時間複雜度為m+n.
class solution
int rows = matrix.size();
int columns = matrix[0].size();
if((rows+columns)==0)
return 0;
for(int column=columns-1, row = 0;(column>=0 && rowtarget)
if(matrix[row][column]// cout<<"target in:("
}return false;
}};
04 二維陣列中查詢
在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個高效的函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。示例 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17,24 18,2...
04 二維陣列中的查詢
給定乙個二維陣列,其每一行從左到右遞增排序,從上到下也是遞增排序。給定乙個數,判斷這個數是否在該二維陣列中。consider the following 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 ...
04 二維陣列中的查詢
題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class testmethod system.out.println method ar...