public class Solution {
public int[][] multiply(int[][] A, int[][] B) {
int m=A.length,n=A[0].length,nB=B[0].length;
int[][] res=new int[m][nB];
for(int i=0;i<m;i++){
for(int k=0;k<n;k++){
if(A[i][k]!=0){
for(int j=0;j<nB;j++){
if(B[k][j]!=0) res[i][j]+=A[i][k]*B[k][j];
}
}
}
}
return res;
}
}
public class Solution {
class Node{
int x,y;
Node(int x,int y){
this.x=x;
this.y=y;
}
}
public int[][] multiply(int[][] A, int[][] B) {
int[][] res=new int[A.length][B[0].length];
List<Node> l1=new ArrayList<>();
List<Node> l2=new ArrayList<>();
for(int i=0;i<A.length;i++){
for(int j=0;j<A[0].length;j++){
if(A[i][j]!=0) l1.add(new Node(i,j));
}
}
for(int i=0;i<B.length;i++){
for(int j=0;j<B[0].length;j++){
if(B[i][j]!=0) l2.add(new Node(i,j));
}
}
for(Node nA:l1){
for(Node nB:l2){
if(nA.y==nB.x){
res[nA.x][nB.y]+=A[nA.x][nA.y]*B[nB.x][nB.y];
}
}
}
return res;
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。