当前位置: 代码迷 >> 综合 >> Java - 华为机试训练 - 合并表记录
  详细解决方案

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

热度:65   发布时间:2023-10-09 18:43:52.0

  • 时间限制: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]);}}}}}