java----------华为机试------------合并表记录
来源:互联网 发布:遗传算法原理及应用pdf 编辑:程序博客网 时间:2024/05/16 07:31
题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
输入例子:
40 10 21 23 4
解法一:
解法二:import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int num=sc.nextInt(); int[] a=new int[10000]; //定义一个大数组 for(int j=0;j<num;j++){ //num个循环,每个循环输入一组 int i=sc.nextInt(); int b=sc.nextInt(); a[i]+=b; //以i为key,b为value,不断累加 } for(int i=0; i<num; i++){ if(a[i]!=0){ System.out.println(i+" "+a[i]);//输出所有非零值; } } } }}
明显要用到java中的Map。
复习一下Map:
Map接口是一个双列集合,它的每个元素都包含一个键对象,"Key"和"Value";
Map
{
1.HashMap
由Hash值决定的无重复;
2.TreeMap
二叉树下的Map;
}
import java.util.Map;import java.util.Scanner;import java.util.TreeMap;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { Map<Integer, Integer> map = new TreeMap<Integer, Integer>();//定义map int n = sc.nextInt(); //输入n值 for (int i = 0; i < n; i++) { int s=sc.nextInt(); int value=sc.nextInt(); //输入Key和Value值 if (map.containsKey(s)) { //如果key=s处有值,则用sum替换原值 map.put(s, map.get(s) + value); } else{ //如果无值,直接放入 map.put(s, value); } } //迭代输出 for (Integer key : map.keySet()) { System.out.println(key + " " + map.get(key)); } } }}
0 0
- java----------华为机试------------合并表记录
- Java - 华为机试训练 - 合并表记录
- 华为机试 合并表记录
- 华为机试——合并表记录
- 牛客网_华为机试_008_合并表记录
- 《华为机试在线训练》之合并表记录
- 华为机试——合并表记录
- 合并表记录(华为机试题)
- 华为机试题:合并表记录
- 华为OJ_1956_合并表记录
- 【华为OJ8】合并表记录
- 华为OJ:合并表记录
- 【华为OJ】合并表记录
- 合并表记录之机试
- 华为机试在线训练-牛客网(5)合并表记录
- 华为OJ(合并表记录)
- 华为OJ(合并表记录)
- 【华为OJ】【008-合并表记录】
- IDEA破解 2017 IDEA license server 激活
- span 固定宽度,内容自适应容器自动换行
- Navicat 快捷键
- 跟随屏幕滚动后固定导航到顶端
- java小实现map家族
- java----------华为机试------------合并表记录
- Programming over R
- spring源码(8)注册解析的BeanDefinition
- lintcode(57)三数之和
- Machine Learning知识点一览
- NYOJ 303
- 多源有权图的最短路径 floyd算法(动态规划能解决负权边)7.1.3
- 微博视频怎么下载?微博视频下载和保存工具
- Java中List转换为数组,数组转List