本文共 462 字,大约阅读时间需要 1 分钟。
这道题里二维数组中的元素是有序排放的,自左向右递增。自上而下递增。所以可以考虑暴力查找的方法,逐个比较大小。相较于一维数组,二维数组的问题在于,如果从左上角开始,那么会有两个方向比它大,还得比较这两个数的大小。所以我们不妨换个角度,从右上角开始,如果要寻找的数target比当前数小,则行减1,如果大,则列加一。这样就将行和列区分开,简化了计算步骤。
bool Find(int target, vector> array) { int m=array.size(); int n=array[0].size(); int i=0,j=n-1; if(m==0) return false; while(i =0) { if(target==array[i][j]) return true; else if(target array[i][j]) ++i; } return false; }
转载地址:http://endmi.baihongyu.com/