在一個二維數組中(每一個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。數組
特色:橫座標遞增有序,縱座標遞增有序
方法1:橫座標二分查找,縱座標二分查找;
方法2:假設矩陣從左下角增加,則有規律:矩陣左上角的元素,遞減向下,遞增向右。
則:從左上角元素比較,小於target則向下移動,大於target則向右移動;函數
public class Solution { public boolean Find(int target, int [][] array) { int row = array.length;// 行數 int col = array[0].length;// 列數 for (int i = row - 1, j = 0; i >= 0 && j <= col - 1;) {// i,j只初始化一次,拿取左上角元素 if (array[i][j] == target) { return true; } else if (array[i][j] < target) { j++; } else { i--; } } return false; } }