在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
本题知识点:数组 查找
public class Solution {
public boolean Find(int target, int [][] array) {
}
}
/** * 遍历二维数组暴力实现 * @param target * @param array * @return */ public boolean Find1(int target, int [][] array){ int rowCount = array.length; int colCount = array[0].length; for(int i=0;i<rowCount;i++) { for (int j=0;j<colCount;j++){ if (target<array[i][j]) continue; if (target>array[i][j]){ continue; } else return true; } } return false; } /** * 按照题意 可以从左下角或者右上角进行判断,不必遍历数组 * @param target * @param array * @return */ public boolean Find(int target, int [][] array){ int rowCount = array.length; int colCount = array[0].length; int i,j; for(i=rowCount-1,j=0;i>=0&&j<colCount;) { if(target == array[i][j]) return true; if(target < array[i][j]) { i--; continue; } if(target > array[i][j]) { j++; continue; } } return false; }