//每次比较矩阵右上角的数字和target
public static bool searchMatrix(int[,] nums,int target)
{
int row=0;
int col=nums.GetLength(1)-1;
while (row<nums.GetLength(0)&&col>=0) {
//选取矩阵右上角的数字与要target比较,如果数字大于target,则剔除这个数字所在的列。
//因为某一列最小的数字都比要target大,那么剩下的肯定要比target大。
//如果该数字于target,则剔除这个数字所在的行。
//如果相等,该数字就是要查找的数字,查找过程结束。
if(nums[row,col]>target) col--;
else if(nums[row,col]<target) row++;
else return true;
}
return false;
}
//每次比较矩阵左下角的数字和target,与上述同理
public static bool searchMatrix(int[,] nums,int target)
{
int row=nums.GetLength(0)-1;
int col=0;
while (row>=0&&col<nums.GetLength(1)) {
if(nums[row,col]>target) row--;
else if(nums[row,col]<target) col++;
else return true;
}
return false;
}
240、有序矩阵查找
最新推荐文章于 2022-01-14 22:02:48 发布