现在有一个行和列都排好序的矩阵,请设计一个高效算法,快速查找矩阵中是否含有值x。
给定一个int矩阵mat,同时给定矩阵大小nxm及待查找的数x,请返回一个bool值,代表矩阵中是否存在x。所有矩阵中数字及x均为int范围内整数。保证n和m均小于等于1000。
class Finder { public: bool findX(vector<vector<int> > mat, int n, int m, int x) { // write code here int index_row = 0, index_col = m-1; while(index_row < n && index_col >= 0){ if(mat.at(index_row).at(index_col) == x) return true; if(x < mat.at(index_row).at(index_col)){ index_col--; }else{ index_row++; } } return false; } };