Java - 华为机试训练 - 合并表记录
2016-09-04 08:50
239 查看
时间限制:1秒空间限制:32768K
本题知识点: 栈
算法知识视频讲解
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
输入例子:
输出例子:
思路:题目意思是将相同索引的数值进行求和,最后按照索引的大小升序输出索引和其对应的值。
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]);
}
}
}
}
}
本题知识点: 栈
算法知识视频讲解
题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照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]);
}
}
}
}
}
相关文章推荐
- 华为机试在线训练-牛客网(5)合并表记录
- 牛客网–华为机试在线训练8:合并表记录
- java----------华为机试------------合并表记录
- Java - 华为机试训练 - 字符串分隔
- Java - 华为机试训练 - 字符个数统计
- 华为机试(取近似值,合并表,提取不重复整数,字符个数统计)Java实现
- 华为OJ训练之0041-170115-合并数据表记录
- Java - 华为机试训练 - 进制转换
- Java - 华为机试训练 - 【中级】单词倒排(正则表达式切割字符串)
- 华为机试在线训练-牛客网(18)字符串合并处理
- Java - 华为机试训练 - 汽水瓶
- 《华为机试在线训练》之简单错误记录
- Java - 华为机试训练 - 取近似值
- Java - 华为机试训练 - 字符串反转
- 华为机试 合并表记录
- Java - 华为机试训练 - 计算字符个数
- Java - 华为机试训练 - 提取不重复的整数
- Java - 华为机试训练 - 字串的连接最长路径查找
- Java - 华为机试训练 - 求int型正整数在内存中存储时1的个数
- 牛客网_华为机试_008_合并表记录