考察知识点:数组
题目分析:
观察整个数组:
发现从9开始向右或向下,值都会变小;从1开始向上或向左,值都会变大;
而从7开始向左变大,向下变小;从3开始向上变大,向右变小;我们可以利用这个特征, 从矩阵的右上角或左下角开始,当遍历到的值比目标值大时,将i或j指针做相应的移动。如果i或j出界,那么就说明没有这个值。
所用编程语言:C++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param matrix int整型vector<vector<>>
* @param target int整型
* @return bool布尔型
*/
bool searchMatrix(vector<vector<int> >& matrix, int target) {
// write code here
int size = matrix[0].size();
int i = 0, j = size - 1;
while (matrix[i][j] != target) {
if (matrix[i][j] > target) i++;
else j--;
if (i == size || j == -1) return false;
}
return true;
}
};

京公网安备 11010502036488号