問題:在一個(gè)二維數(shù)組中(每個(gè)一維數(shù)組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個(gè)函數(shù),輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù),判斷數(shù)組中是否含有該整數(shù)。
java
思想:矩陣是有序的,從左下角來看,向上數(shù)字遞減,向右數(shù)字遞增,所以從左下角那個(gè)數(shù)開始查找,當(dāng)要查找數(shù)字比左下角數(shù)字大時(shí),右移。要查找數(shù)字比左下角數(shù)字小時(shí),上移
代碼:
publicclassSolution {
????publicbooleanFind(inttarget,?int[][] array) {
????????int row = array.length;
????????int col = array[0].length;
????????int i=0, j=col-1;
????????while(i < row && j >=0){
????????????if( array[i][j] == target)
????????????????return true;
????????????else if( array[i][j]? >? target){
????????????????j--;
????????????}else{
????????????????i++;
????????????}
????????}
????????return false;
????}
}