數組扁平化去併除其中重複部分數據,最終得到一個升序且不重複的數組

據說這是一道美團面試擼代碼題目,我花一會功夫實現了,還可以

var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
// 編寫一個程序將數組扁平化去併除其中重複部分數據,最終得到一個升序且不重複的數組

function fx(arr){
    
    var a=[]
    f(arr,a)

    let set=new Set(a)

    let re=Array.from(set)
    // console.log(re)
    console.log(re.sort((a,b)=>{return a-b}))

}
//遞歸數組,push到a裏
function f(arr,a){
//數組類型再次遞歸
    if(arr instanceof Array){
        arr.forEach(e=>{
            f(e,a)
        })
 //非數組類型,即某一數組元素,直接push
    }else {
        a.push(arr)
    }


}
var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
fx(arr)

我感覺這個遞歸方法有點動態規劃的影子

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章