题解 | #矩阵乘法#

矩阵乘法

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

解题思路

  1. 循环找到arr1的每一行
  2. 循环找到arr2的每一列
  3. 循环arr1这一行的每一项去乘以arr2的这一列的对应项

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    let line1 = await readline();
    let line2 = await readline();
    let line3 = await readline();
    let arr1 = [];
    let arr2 = [];
    for (let i = 0; i < line1; i++) {
        arr1.push((await readline()).split(" "));
    }
    for (let i = 0; i < line2; i++) {
        arr2.push((await readline()).split(" "));
    }
    let out = [];
    
    // 用第一个数组的每一行的每一列,去乘以第二个数组的每一列
    for(let i = 0;i<arr1.length;i++){  // i就是arr1的行号
        // 这里就拿到了一行数据 arr1[i]
        let item = []
        // 再用数组2的每一列去乘以这行数据
        for(let j = 0;j<arr2[0].length;j++){  // j 就是arr2的列号
            // 这里就拿到数组2的每一列  arr2[0][j]  arr2[1][j] ... 
            let sum = 0
            for(let k = 0;k<arr1[0].length;k++){  // k就是arr1[i]行的列号
                // arr1[i][k]
                sum += arr1[i][k] * arr2[k][j]
            }
            item.push(sum)
        }
        out.push(item.join(" "))
    }
    out.forEach(v => console.log(v))




})();

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 12:20
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:15
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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