二維數組中的查找
題目描述
在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
實現代碼:
function Find(target,array){
var row = array.length;
var i = row - 1;
var j = 0;
while(i>=0&&array[i][j]){
if(array[i][j]>target) {
i--;
} else if(array[i][j] < target) {
j++;
} else{
return true;
}
}
return false;
]
module.exports = {
Find : Find
};
解題思路
這個二維數組類比成一個有序的矩陣,從矩陣的左下角看,往上是遞減的,往右是遞增的,那么就可以從最左下角的元素開始比較,如果比target大,就j++,如果比target小,就i--,直到相等返回true。