国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

讓前端面試不再難(常見算法)

nanchen2251 / 2519人閱讀

摘要:昨天聊了一個算法題,今天接著聊多聊幾個。如果是是數(shù)組那么遞歸執(zhí)行,并把當(dāng)前和已有傳進去繼續(xù)。如果不是直接到第二種,邏輯一樣只不過遍歷換成了,如果讀的比較困難請移步了解第三種比較簡單會默認(rèn)過濾數(shù)組內(nèi)部,算是一個奇淫技巧。

昨天聊了一個算法題,今天接著聊!多聊幾個。

1、拍平數(shù)組(多維數(shù)組變成一維數(shù)組)

      let arr = [1,[2,3,[4],[5,6,[7]]],8]//[1,2,3,4,5,6,7,8]
      //這個有很多方法,我們一一說來
      //第一種遍歷數(shù)組,遍歷過程遇到數(shù)組遞歸。
       function flatten(arr, newArr) {
            //省去全局變量,還避開了函數(shù)嵌套閉包的形成。
            newArr = newArr || []
            for (let i = 0; i < arr.length; i++) {
                //如果是arr[i]是數(shù)組那么遞歸執(zhí)行,并把當(dāng)前arr[i]和已有newArr傳進去繼續(xù)push。
                //如果不是直接push到newArr
                typeof arr[i] === "object" ? flatten(arr[i], newArr) : newArr.push(arr[i])
            }
            return newArr
        }
        console.log(flatten(arr))
        //第二種,邏輯一樣只不過遍歷換成了reduce,如果讀的比較困難請移步:https://segmentfault.com/a/1190000017510301 了解reduce
        function flatten1(arr) {
            return arr.reduce((newArr, item) => {
                return typeof item === "object" ? newArr.concat(flatten1(item, newArr)) : (newArr.push(item), newArr)
            }, [])
        }
        console.log(flatten1(arr))
        //第三種比較簡單
        function flatten2(arr) {
            //join會默認(rèn)過濾數(shù)組內(nèi)部[],算是一個奇淫技巧。
            return arr.join(",").split(",")
        }
        console.log(flatten2(arr))
        //第三種稍有點問題,如果數(shù)組內(nèi)是number類型會拍平后會變成字符串。

2、寫一個方法判斷字符串內(nèi)()是否成對出現(xiàn),是返回true不是返回false

        let str = "(()()())"
        let str1 = "(())()())"

        //1、先用棧的思路解決
        function isTure(str, result = []) {
            let arr = str.split("")
            for (let i = 0; i < arr.length; i++) {
                const item = arr[i];
                // 如果是左括號直接壓棧
                if (item === "(") {
                    // 壓棧
                    result.push(item);
                    // 如果是右括號且當(dāng)前arr不為空彈出棧頂
                } else if (item === ")" && result.length != 0) {
                    // 彈出棧頂
                    result.pop()
                } else {
                    //如果是右括號且當(dāng)前result為空,則直接判定為不合法
                    return false
                }
            }
            return result ? true : false
        }

        console.log(isTure(str)) //true
        console.log(isTure(str1)) //false

        2、用計數(shù)方式其實和棧原理類似
        function isTure1(str, count = 0) {
            let arr = str.split("")
            for (let i = 0; i < arr.length; i++) {
                const item = arr[i];
                if (item === "(") {
                    count++
                } else if (item === ")" && count != 0) {
                    count--
                } else {
                    return false
                }
            }
            return !count ? true : false
        }
        console.log(isTure1(str))//true
        console.log(isTure1(str1))//false

ok 今天分享就到這,明天繼續(xù)!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/101426.html

相關(guān)文章

  • 前端面試不在常見算法一)

    摘要:今天開始,我從面試題切入開始做一些詳解和記錄,爭取每個工作日一篇歡迎關(guān)注吐槽要求以對象的大小排序返回問題解析對象是無序的,我們需要轉(zhuǎn)為有序數(shù)據(jù)結(jié)構(gòu),其實也就是轉(zhuǎn)為數(shù)組然后后再去排序。 今天開始,我從面試題切入開始做一些詳解和記錄,爭取每個工作日一篇!歡迎關(guān)注吐槽! const obj = { a: 1, b: 3, ...

    sunny5541 評論0 收藏0
  • 【進階1-4期】JavaScript深入之帶你走進內(nèi)存機制

    摘要:引擎對堆內(nèi)存中的對象進行分代管理新生代存活周期較短的對象,如臨時變量字符串等。內(nèi)存泄漏對于持續(xù)運行的服務(wù)進程,必須及時釋放不再用到的內(nèi)存。 (關(guān)注福利,關(guān)注本公眾號回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實戰(zhàn)、面試指導(dǎo)) 本周正式開始前端進階的第一期,本周的主題是調(diào)用堆棧,今天是第4天。 本計劃一共28期,每期重點攻克一個面試重難點,如果你還不了解本進階計劃...

    不知名網(wǎng)友 評論0 收藏0
  • 【進階1-3期】JavaScript深入之內(nèi)存空間詳細圖解

    摘要:進階期理解中的執(zhí)行上下文和執(zhí)行棧進階期深入之執(zhí)行上下文棧和變量對象但是今天補充一個知識點某些情況下,調(diào)用堆棧中函數(shù)調(diào)用的數(shù)量超出了調(diào)用堆棧的實際大小,瀏覽器會拋出一個錯誤終止運行。 (關(guān)注福利,關(guān)注本公眾號回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實戰(zhàn)、面試指導(dǎo)) 本周正式開始前端進階的第一期,本周的主題是調(diào)用堆棧,今天是第3天。 本計劃一共28期,每期重點攻...

    coordinate35 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<