题意:每行数字从小到达,每行的最后一位比下一行的最后一位小。
思路与分析:可以利用每行的最后一位来判断,可以节约寻找时间,直接判断每行的最后一位是否大于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;
}
};
本文介绍了一种高效的矩阵搜索算法,该算法能够快速定位目标值在矩阵中的位置。通过利用矩阵的特性,即每行数字从小到大排列且每行的最后一个元素比下一行的小,实现了时间复杂度上的优化。
3566

被折叠的 条评论
为什么被折叠?



