題目描述
編寫一個高效的算法來搜索 m x n 矩陣 matrix 中的一個目標值 target 。該矩陣具有以下特性:
- 每行的元素從左到右升序排列。
- 每列的元素從上到下升序排列。
class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int col = matrix[0].size()-1;int row = 0;while (matrix[row][col]!=target){if(matrix[row][col]>target){col--;} else if(matrix[row][col]<target){row++;} else{return true;}if(row>matrix.size()-1||col<0){return false;}}return true;}
};
小結:這道題用了一個巧妙但是難以想到的思路,不是從左上角或右下角遍歷,而是從右上角(或左下角),以從右上角開始為例,若小于target向下遍歷,大于target向左遍歷,這樣保證只有一個固定的前進方向,直到找到或者越界停止