class Solution { public: bool Find(int target, vector<vector<int> > array) { //暴力求解代码 // for (auto i : array){ // for (auto j:i){ // if (j == target) // return true; // } // } // return false; //更便捷的解法:利用矩阵右上角或者左下角元素,进行快速一行或一列的排除 //利用右上角 //下面两行删掉后内存和时间均增加 // if (array.empty()) // return false; // int row = 0; //行 // int col = array[0].size() - 1; //列 // while (row < array.size() && col >= 0) { // if (array[row][col] == target) // return true; // else if (array[row][col] > target) // col--; // else if (array[row][col] < target) // row++; // } // return false; //利用左下角元素 if (array.empty()) return false; int row = array.size()-1; //行 int col = 0; //列 while (col < array[0].size() && row >= 0) { if (array[row][col] == target) return true; else if (array[row][col] > target) row--; else if (array[row][col] < target) col++; } return false; } };