题解 | #矩阵乘法计算量估算#
矩阵乘法计算量估算
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) } });