# LeetCode -- Search a 2D Matrix II

824人阅读 评论(0)

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

Integers in each row are sorted in ascending from left to right.
Integers in each column are sorted in ascending from top to bottom.
For example,

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]
]
Given target = 5, return true.

Given target = 20, return false.

1.从左下开始找，如果matrix[r,c]（r为行，c为列） < target，c++；否则r--。
2.直到r或c越界为止。

public class Solution {
public bool SearchMatrix(int[,] matrix, int target)
{
var rowLen = matrix.GetLength(0);
var colLen = matrix.GetLength(1);

var row = rowLen - 1;
var col = 0;

while(col <= colLen - 1 && row >= 0){
if(matrix[row,col] == target){
return true;
}
else if(matrix[row,col] < target){
col ++;
}
else{
row --;
}
}
return false;
}

}

1
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：1199545次
• 积分：21576
• 等级：
• 排名：第335名
• 原创：882篇
• 转载：88篇
• 译文：4篇
• 评论：176条
个人主页
评论排行
最新评论