題目:在一個(gè)二維數(shù)組中洁奈,每一行都按照從左到右遞增的順序排序调缨,每一列都按照從上到下遞增的順序排序。請(qǐng)完成一個(gè)函數(shù)鸥滨,輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù)戴甩,判斷數(shù)組中是否含有該整數(shù)符喝。
public class Solution {
public boolean Find(int target, int [][] array) {
int row = 0;
int col = array.length - 1;
while(row < array[0].length && col >= 0){
if(array[col][row] > target){
col--;
}else if(array[col][row] < target){
row++;
}else{
return true;
}
}
return false;
}
}
思路:將指針?lè)诺降谝恍械哪┪玻绻鹴arget比指針位置的數(shù)大甜孤,指針就向下移動(dòng)协饲,如果target比指針位置的數(shù)小,指針就向左移動(dòng)缴川,如果發(fā)現(xiàn)了數(shù)就返回true茉稠,如果越界了,說(shuō)明沒(méi)有這個(gè)數(shù)把夸。
當(dāng)然使用二分查找分行遍歷也是可以的而线。