1. 程式人生 > >一些經典演算法的js實現方案

一些經典演算法的js實現方案

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

function Find(target,array){
    //程式碼實現
    for(var i=0;i<array.length;i++){
        for(var j=0;j<array[i].length;j++){
            if(array[i][j] == target)
                return true
        }
    }
}

實現思路:由於矩陣橫向和縱向都是遞增有序的,所以可以迴圈遍歷,先遍歷出每一行,然後再用每一行的子元素和目標target進行比較,如果array是個n*n的二維陣列,這種迴圈遍歷的時間複雜度是n的平方

題目描述
請實現一個函式,將一個字串中的空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。

function replaceSpace(str){
    return str.split(" ").join("%20")
}

實現思路:split(array)可以分割字串,比如str=”how are you”,那麼split(array)之後就是 how,are,you (預設分隔符是,)。然後array.join可以合併陣列,比如arr = new Array[3], arr[0]=”111”,arr[1]=”222”,arr[2]=”333”,那麼arr.join(“!”)之後就是 111!222!333