题意:每行数字从小到达,每行的最后一位比下一行的最后一位小。
思路与分析:可以利用每行的最后一位来判断,可以节约寻找时间,直接判断每行的最后一位是否大于target,是则在当行最后一个开始往回找,否则,转下一行。
代码:
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
for (int i = 0; i < matrix.size(); i++) {
for (int j = matrix[0].size() - 1; j >= 0; j--) {
if (target > matrix[i][j]) break;
else if (target == matrix[i][j]) return true;
else if (j == 0) return false;
}
}
return false;
}
};