题解 | #矩阵乘法#

矩阵乘法

https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});
const inputs = [];
rl.on("line", function (line) {
    inputs.push(line);
});
const CalRect = (arr1, arr2) => {
    const res = [];
    // console.log(arr1, arr2)
    if(!arr2.length){
        arr2 = arr1.splice(arr1.length/2)
    }
    // console.log(arr2, arr1)
    // if (hang !== lie) {
    //     console.log("行列不一致");
    //     return [];
    // }
    // console.log('hang lie 是',hang,lie)
    for (let k = 0; k < arr1.length; k++) {
        if (!res[k]) {
            res[k] = [];
        }
        for (let i = 0; i < arr2[0].length; i++) {
            let sum = 0;
            arr1[k].forEach((val, key) => {
                // console.log("val * arr2", val, arr2[key][i]);
                sum += val * arr2[key][i];
            });
            // console.log(sum)
            res[k][i] = sum;
        }
    }
    return res;
};

rl.on("close", () => {
    const rect1 = [];
    const rect2 = [];
    inputs.splice(0, 3);
    //   console.log(inputs)
    for (let val of inputs) {
        const line = val.split(" ");
        if (rect1[0] !== undefined && line.length === rect1[0].length) {
            rect1.push(line);
            continue;
        }
        if (rect1[0] !== undefined && line.length !== rect1[0].length) {
            rect2.push(line);
            continue;
        }
        rect1.push(line);
    }
    const result = CalRect(rect1, rect2);
    for( let num of result){
        console.log(num.join(' '))
    }
    // console.log(result);
});

全部评论

相关推荐

Cherrycola01:0实习 0项目 约等于啥也没有啊 哥们儿这简历认真的吗
点赞 评论 收藏
分享
06-03 15:32
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务