1. 程式人生 > >劍指offer第一題JavaScript實現(二維陣列的查詢)

劍指offer第一題JavaScript實現(二維陣列的查詢)

題目:

     在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

     解答思路: 二維陣列類比為一個矩陣,是從左至右、從上至下是有序的,因此可以先從第一行最後一個位置進行比較,如果比要找到的整數小,則在本行向前查詢,同理若大則在本列向前查詢。

     程式碼:

function Find(target, array)
{
    let len =array.length;
    // 設定兩個變數,i為行,j為列
    let i=0;
    let j = array[0].length-1;
 
    while(i<len && j>=0){
        if(array[i][j]<target){
            i++;
        }else if(array[i][j]>target){
             j--;
        }else{
            return true;
        }
    }
    return false;
}