题解 | #矩阵乘法#

矩阵乘法

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))




})();

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务