题解 | #矩阵乘法#

矩阵乘法

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

所以 fill()这个方法来新建空白Array真的巨坑,因为fill的全部是同样的元素,导致后期修改一个,同index的其他元素内容也会改变,已经吃亏上当了,用了map方法新建空白Array,当然我也看了
尤其同学直接push,也是可以的,个人喜好不一样,完整代码如下:
let x = parseInt(readline());
let y = parseInt(readline());
let z = parseInt(readline());
let res = [];
while (line = readline()) {
    res.push(line);
}
let xArr = res.slice(0, x).map(x => x.split(' ').map(Number));
let yArr = res.slice(x).map(x => x.split(' ').map(Number));
let newArr = [...Array(z).fill([])];
yArr.forEach(a => {
    for (let i = 0; i < z; i++) {
        newArr[i] = newArr[i].concat(a[i]);
    }
})
//这里是重难点
//个人习惯 新建一个同等length的空白数组(开头已经说到过用fill()这个方法很坑,小伙伴们注意)
let output = [...Array(x)].map(a => [...Array(z)].map(b => 0));
//然后就是i,j,k三重循环,最终导出的数据(在这里,i,j,k真的弄了蛮久的,需要把逻辑捋清楚)
for (let i = 0; i < x; i++) {
    for (let j = 0; j < z; j++) {
        for (let k = 0; k < y; k++) {
            output[i][j] +=  xArr[i][k] * newArr[j][k];
        }
    }
}
output.forEach(a => console.log(a.join(' ')));


全部评论

相关推荐

09-22 09:42
门头沟学院 Java
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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