考察知识点:数组
题目分析:
观察整个数组:
发现从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; } };