题解 | #矩阵乘法计算量估算#

矩阵乘法计算量估算

https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b

import java.util.*;

/**
 * @author hll[yellowdradra@foxmail.com]
 * @date 2022-10-13 21:36
 **/
public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Matrix[] matrix = new Matrix[in.nextInt()];
        fill(matrix, in);
        String s = in.nextLine();
        LinkedList<Matrix> stack = new LinkedList<Matrix>();
        int multiplications = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '(') {
                continue;
            } else if (s.charAt(i) == ')') {
                Matrix a = stack.pop();
                Matrix b = stack.pop();
                // 矩阵乘法是不满足交换律的 注意出栈顺序
                multiplications += b.multiply(a);
                stack.push(b);
            } else {
                stack.push(matrix[s.charAt(i) - 'A']);
            }
        }
        System.out.println(multiplications);
    }

    static void fill(Matrix[] arr, Scanner in) {
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new Matrix(in.nextInt(), in.nextInt());
        }
        // 吞一个回车 要不还要转换 有点麻烦
        in.nextLine();
    }

    static class Matrix {
        int x, y;

        Matrix(int x, int y) {
            this.x = x;
            this.y = y;
        }

        int multiply(Matrix b) {
            int t = this.x * this.y * b.y;
            this.y = b.y;
            return t;
        }
    }
}

全部评论

相关推荐

07-02 13:52
门头沟学院 Java
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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