您的位置:首页 > 编程语言 > Java开发

Java - 华为机试训练 - 合并表记录

2016-09-04 08:50 239 查看
时间限制:1秒空间限制:32768K

本题知识点: 

 算法知识视频讲解


题目描述

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开

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

输入例子:
4
0 1
0 2
1 2
3 4


输出例子:
0 3
1 2
3 4


思路:题目意思是将相同索引的数值进行求和,最后按照索引的大小升序输出索引和其对应的值。

1.输入:定义一个int型一维数组,数组下标为索引,数组值为数值,初始化为0,有数据输入后进行相加。

2.输出:遍历数组,如果数值不是0,则输出数组下标和对应的值。

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

while(sc.hasNext()){

int n = sc.nextInt();

int[]ans = new int[10000];

for(int i=0 ;i<n ;i++){
int index = sc.nextInt();
ans[index] += sc.nextInt();
}

for(int i=0 ;i<10000 ;i++){
if(ans[i]!=0){
System.out.println(i+" "+ans[i]);
}
}
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: