1. 博主最近在学数据结构,碰到一道很有意思的题目,题目如下
- 可惜博主经验有限,在csdn上寻找前人经验,发现前人经验动辄200行,叹息自己能力不行,几经思考,博主完成了较为简单的二维稀疏矩阵的相加,希望同行多多包涵。
- 实现代码如下:
#include <iostream>
using namespace std;
int main() {
int m,n;
cin>>m>>n;
int A[50][50]={0},B[50][50]={0},C[50][50]={0};
int copy1,copy2,copy3;
for(int i=0;i<m;i++)
{
cin>>copy1>>copy2>>copy3;
A[copy1][copy2]=copy3;
}
for (int i=0; i<n; i++) {
cin>>copy1>>copy2>>copy3;
B[copy1][copy2]=copy3;
}//创建A,B两数组
for(int i=0;i<50;i++)
{
for(int j=0;j<50;j++){
C[i][j]=A[i][j]+B[i][j];
}
}
int baby=0;/*这个很关键,能够帮助我们判断是否所有元素都为0,从而做到满足一切要求*/
for(int i=0;i<50;i++)
{
for(int j=0;j<50;j++){
if(C[i][j]!=0)
{
cout<<i<<" "<<j<<" "<<C[i][j]<<endl;
baby++;}
}
}
if(baby==0)
cout<<"-1"<<" "<<"-1"<<" "<<"-1";
}
- 希望大家能对大家有所帮助。继续加油!