最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • leetcode 加一 && 公交路线

    正文概述 掘金(NealChristmas)   2021-01-09   395

    66. 加一

    leetcode-cn.com/problems/pl…

    /**
     * @param {number[]} digits
     * @return {number[]}
     */
    var plusOne = function (digits) {
        for(let i=digits.length -1;i>-1;i--){
            digits[i] = (digits[i] + 1) % 10
            if(digits[i] !== 0){
                return digits
            }
        }
        digits = [...Array(digits.length + 1)].map(_=>0)
        digits[0] = 1
        return digits
    };
    
    
    /**
     * @param {number[]} digits
     * @return {number[]}
     */
    var plusOne = function (digits) {
        let flag = 1
        for (let i = digits.length - 1; i >= 0; i--) {
            if (flag) {
                const target = digits[i] + flag
                if (target === 10) {
                    digits[i] = 0
                }else{
                    digits[i] = target
                    flag --
                    return digits
                }
            }
        }
        if(flag) {
            digits.unshift(flag)
        }
        return digits
    };
    

    815. 公交路线

    leetcode-cn.com/problems/bu…

    • bfs 扩散关联的车站
    /**
     * @param {number[][]} routes
     * @param {number} S
     * @param {number} T
     * @return {number}
     */
    var numBusesToDestination = function (routes, S, T) {
        if (S === T) {
            return 0
        }
        let minTime = 0
        const stack = [S]
        const visted = []
        const relatedMap = {} 
        for (let i = 0; i < routes.length; i++) {
            for (let j = 0; j < routes[i].length; j++) {
                if (!relatedMap[routes[i][j]]) {
                    relatedMap[routes[i][j]] = new Set()
                }
                relatedMap[routes[i][j]].add(i)
            }
        }
        // 扩散车站 而不是扩展路线
        while (stack.length) {
            minTime++
            const size = stack.length
            for (let i = 0; i < size; i++) {
                const data = stack.shift()
                if (data === T) {
                    return minTime
                }
                const relatedRoutes = relatedMap[data]
                for (let nextRoutes of relatedRoutes) {
                    for (let nextStation of routes[nextRoutes]) {
                        if (nextStation === T) {
                            return minTime
                        }
                        if (!visted[nextStation]) {
                            visted[nextStation] = true
                            stack.push(nextStation)
                        }
                    }
    
                }
    
            }
        }
    
    
        return -1
    
    };
    
    • bfs 扩散关联的线路 超时
    /**
     * @param {number[][]} routes
     * @param {number} S
     * @param {number} T
     * @return {number}
     */
    var numBusesToDestination = function (routes, S, T) {
        if(S===T){
            return 0
        }
        let minTime = 0
        const stack = []
        const visted = []
        for (let i = 0; i < routes.length; i++) {
            for (let j = 0; j < routes[i].length; j++) {
                if (routes[i][j] === S) {
                    if (routes[i].indexOf(T) >= 0) {
                        return 1
                    } else {
                        stack.push({ data: routes[i], index: i })
    
                    }
                }
            }
        }
    
    
        while (stack.length) {
            minTime++
            const size = stack.length
            for (let i = 0; i < size; i++) {
                const { data, index } = stack.shift()
                if (data.indexOf(T) >= 0) {
                    return minTime 
                } else {
                    for (let m = 0; m < routes.length; m++) {
                        if (m !== index) {
                            if (isRelated(data, routes[m]) && !visted[m]) {
                                visted[m] = true
                                stack.push({ data: routes[m], index: m })
                            }
                        }
                    }
                }
    
            }
        }
    
        function isRelated(l1, l2) {
            for (let i = 0; i < l1.length; i++) {
                if (l2.indexOf(l1[i]) >= 0) {
                    return true
                }
            }
            return false
        }
    
        return -1
    
    };
    

    起源地下载网 » leetcode 加一 && 公交路线

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元