题解 | #矩阵乘法计算量估算#

矩阵乘法计算量估算

https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
// 只保存每个矩阵的行列数据 列如矩阵是 5*4 (5行4列), 则stack = [[5,4],...]
const stack = []
// 保存矩阵的数量
let num = 0
// 保存所有矩阵行列数据
const arr = []
// 輸入行
let row = 0

rl.on('line', function (line) {
    row++
    if(row === 1){
        num = Number(line)
    }else if(row <= num + 1){
        arr.push(line.split(' '))
    }else {
        // 根据计算法则开始计算计算量
        let res = 0
        for(let c of line){
            // 左括号就跳过
            if(c == '('){
                continue
            } else if(c == ')'){ 
                // 遇到右括号就弹出两个矩阵数据进行计算,后一个矩阵与前一个矩阵
                const back = stack.pop()
                const front = stack.pop()
                // 计算计算量
                res += front[0] * back[0] * back[1]
                const tmp = [front[0], back[1]]
                stack.push(tmp)
            }else {
                // 遇到矩阵就将矩阵行列数据入栈
                stack.push(arr.shift())
            }
        }
        console.log(res)
    }
});

全部评论

相关推荐

小狗吃臭臭:以后用不到你设计的手机了,可惜!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务