牛客NC143 矩阵乘法【中等 矩阵 C++/Java/Go/PHP】

ops/2024/10/19 7:31:08/

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/bf358c3ac73e491585943bac94e309b0

思路

 矩阵算法在图像处理、神经网络、模式识别等领域有着广泛的用途。在矩阵乘法中,A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量。运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。参考下面的链接https://blog.csdn.net/Lyon_yong/article/details/129474027https://blog.csdn.net/why1472587/article/details/125080048

参考答案C++

class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param a int整型vector<vector<>> 第一个矩阵* @param b int整型vector<vector<>> 第二个矩阵* @return int整型vector<vector<>>*/vector<vector<int> > solve(vector<vector<int> >& a, vector<vector<int> >& b) {/*矩阵算法在图像处理、神经网络、模式识别等领域有着广泛的用途。在矩阵乘法中,A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量。运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。参考下面的链接https://blog.csdn.net/Lyon_yong/article/details/129474027https://blog.csdn.net/why1472587/article/details/125080048*/int arows = a.size(), acols = a[0].size();int brows = b.size(), bcols = b[0].size();//c=a*b  c的行数=a的行数 c的列数=b的列数vector<vector<int>> c(arows);for (int row = 0; row < arows; row++) {c[row] = vector<int>(bcols);for (int col = 0; col < bcols; col++) {// 运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。int cursum = 0;for (int idx = 0; idx < acols; idx++) {cursum += a[row][idx] * b[idx][col];}c[row][col] = cursum;}}return c;}
};

参考答案Java

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param a int整型二维数组 第一个矩阵* @param b int整型二维数组 第二个矩阵* @return int整型二维数组*/public int[][] solve (int[][] a, int[][] b) {/*矩阵算法在图像处理、神经网络、模式识别等领域有着广泛的用途。在矩阵乘法中,A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量。运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。参考下面的链接https://blog.csdn.net/Lyon_yong/article/details/129474027https://blog.csdn.net/why1472587/article/details/125080048*/int arows = a.length, acols = a[0].length; //a的行数和列数int brows = b.length, bcols = b[0].length; //b的行数和列数//c矩阵=a*b    c的行数=a的行数  c的列数=b的列数int[][] c = new int[arows][bcols];for (int row = 0; row < arows; row++) {for (int col = 0; col < bcols ; col++) {int cussum = 0;for (int idx = 0; idx < acols ; idx++) {cussum += a[row][idx] * b[idx][col];}c[row][col] = cussum;}}return c;}
}

参考答案Go

package main/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param a int整型二维数组 第一个矩阵* @param b int整型二维数组 第二个矩阵* @return int整型二维数组*/
func solve(a [][]int, b [][]int) [][]int {/*矩阵算法在图像处理、神经网络、模式识别等领域有着广泛的用途。在矩阵乘法中,A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量。运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。参考下面的链接https://blog.csdn.net/Lyon_yong/article/details/129474027https://blog.csdn.net/why1472587/article/details/125080048*/arows := len(a)acols := len(a[0])//brows := len(b)bcols := len(b[0])//c=a*b   c的行数=a的行数  c的列数=b的列数c := make([][]int, arows)for row := 0; row < arows; row++ {c[row] = make([]int, bcols)for col := 0; col < bcols; col++ {//A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。cursum := 0for idx := 0; idx < acols; idx++ {cursum += a[row][idx] * b[idx][col]}c[row][col] = cursum}}return c
}

参考答案PHP

<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param a int整型二维数组 第一个矩阵* @param b int整型二维数组 第二个矩阵* @return int整型二维数组*/
function solve( $a ,  $b )
{/*矩阵算法在图像处理、神经网络、模式识别等领域有着广泛的用途。在矩阵乘法中,A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量。运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。参考下面的链接https://blog.csdn.net/Lyon_yong/article/details/129474027https://blog.csdn.net/why1472587/article/details/125080048*/$arows = count($a);$acols = count($a[0]);$brows=count($b);$bcols =count($b[0]);$c = []; //c=a*b  c的行数=a的行数  c的列数=b的列数for($row=0;$row<$arows;$row++){for($col=0;$col<$bcols;$col++){//A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。$cursum = 0;for($idx=0;$idx<$acols;$idx++){$cursum+= $a[$row][$idx]*$b[$idx][$col];}$c[$row][$col] = $cursum;}}return $c;
}

http://www.ppmy.cn/ops/25311.html

相关文章

数位dp练习

[SCOI2009] windy 数 题目背景 windy 定义了一种 windy 数。 题目描述 不含前导零且相邻两个数字之差至少为 2 2 2 的正整数被称为 windy 数。windy 想知道&#xff0c;在 a a a 和 b b b 之间&#xff0c;包括 a a a 和 b b b &#xff0c;总共有多少个 windy 数&…

linux驱动-CCF-1 provider 注册时钟

CCF: common clock frameword provider 注册时钟分析 1. 待注册 时钟数据 #define _REGISTER(f, s, ...) { .clk_register (bcm2835_clk_register)f, \.supported s, \.data __VA_ARGS__ } #define REGISTER_CLK(s, ...) _REGISTER(&bcm2835_register_clock, \s, …

Redis(七) zset有序集合类型

文章目录 前言命令ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZPOPMAXZPOPMIN两个阻塞版本的POP命令BZPOPMAX BZPOPMINZRANKZREVRANKZSCOREZREMZREMRANGEBYRANKZREMRANGEBYSCOREZINCRBY集合间操作ZINTERSTOREZUNIONSTORE 命令小结 内部编码使用场景 前言 对于有序集合这个名…

Big Data 平障录

Hive Hive 生成带压缩的格式&#xff0c;需要如此设置 SET parquet.compressionSNAPPY;yarn.scheduler.fair.assignmultiple 相关jira&#xff1a;https://issues.apache.org/jira/browse/YARN-5035 yarn.scheduler.fair.assignmultiple是YARN Fair Scheduler的一个配置参数…

vue 配合 video.js 实现视频播放

1. 导入 video.js 包 npm install video.js -S npm install videojs-flash -S 2. 代码实现 <template><div><videoid"my-video"class"video-js"controlspreload"auto"width"640"height"264":poster&quo…

Linux基础——Linux开发工具(上)vim

前言&#xff1a;在了解完Linux基本指令和Linux权限后&#xff0c;我们有了足够了能力来学习后面的内容&#xff0c;但是在真正进入Linux之前&#xff0c;我们还得要学会使用Linux中的几个开发工具。而我们主要介绍的是以下几个&#xff1a; yum, vim, gcc / g, gdb, make / ma…

大型语言模型LLM的数据管理与应用

大型语言模型&#xff08;LLM&#xff09;风靡全球&#xff0c;尤其是 OpenAI 的最新发展。LLMs 的魅力来自于其理解、解释和生成人类语言的能力&#xff0c;而这曾被认为是人类的专属领域。像 CoPilot 这样的工具正在迅速融入开发人员的日常生活&#xff0c;而以 ChatGPT 为动…

stm32单片机开发一、中断之外部中断实验

stm32单片机的外部中断和定时器中断、ADC中断等都由stm32的内核中的NVIC模块控制&#xff0c;stm32的中断有很多中&#xff0c;比如供电不足中断&#xff0c;当供电不足时&#xff0c;会产生的一种中断&#xff0c;这么多中断如果都接在CPU上&#xff0c;或者说CPU去处理&#…