码迷,mamicode.com
首页 > 其他好文 > 详细

华为训练题:初级——合并表记录(字典,简单题)

时间:2015-08-14 21:21:06      阅读:444      评论:0      收藏:0      [点我收藏+]

标签:

数据表记录包含表索引和数值。请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和

先输入键值对的个数
然后输入成对的index和value值,以换行符隔开

输出合并后的键值对(多行)

4

0 1 0 2 1 2 3 4

0

3

1

2

3

4

思路:

用一个map字典来做,每次输入一对时count下,发现不等于1时加入,发现等于1时在它上面++value

 1 #include<iostream>
 2 #include<map>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n;
 8     map<int,int> ma1;
 9     cin>>n;
10     while(n--)
11     {
12         int key;
13         int value;
14         cin>>key;
15         cin>>value;
16 
17         if(ma1.count(key)==1)
18             ma1[key]+=value;
19         else
20             ma1[key]=value;
21     }
22     for(map<int,int>::iterator i=ma1.begin();i!=ma1.end();i++)
23     {
24         cout<<i->first<<endl;
25         cout<<i->second<<endl;
26     }
27     system("pause");
28 }

华为训练题:初级——合并表记录(字典,简单题)

标签:

原文地址:http://www.cnblogs.com/yanliang12138/p/4731113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!