題目:在一個二維數(shù)組中虑乖,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序闯团。請完成一個函數(shù)辛臊,輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)房交。
public bool FindNumberIn2DArray(int[][] matrix, int target)
{
if (matrix.Length == 0 || matrix[0].Length == 0)
return false;
var rows = matrix.Length;
var cols = matrix[0].Length;
var row = 0;
var col = cols-1;
while (row<rows && col>=0)
{
if (matrix[row][col] == target)
return true;
if (target > matrix[row][col])
row += 1;
else
{
col -= 1;
}
}
return false;
}
首先選取數(shù)組中右上角的數(shù)字彻舰。如果該數(shù)字等于要查找的數(shù)字,查找過程結(jié)束候味;如果該數(shù)字大于要查找的數(shù)字刃唤,剔除這個數(shù)字所在的列;如果該數(shù)字小于要查找的數(shù)字白群,剔除這個數(shù)字所在的行尚胞。