华为OJ——合并表记录
来源:互联网 发布:炽热狙击网络连接失败 编辑:程序博客网 时间:2024/05/19 02:02
题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
输入例子:
40 10 21 23 4
输出例子:
0 31 23 4
方法一:
import java.util.*;public class Main {public static void main(String[] args) {Scanner scan=new Scanner(System.in);int sum=scan.nextInt();TreeMap<Integer,Integer> tm=new TreeMap<Integer,Integer>();for(int i=0;i<sum;i++){Scanner scan1=new Scanner(System.in);String str=scan1.nextLine();int index=str.indexOf(' ');System.out.println(index);int key=Integer.parseInt(str.substring(0, index));int value=Integer.parseInt(str.substring(index+1));if(tm.containsKey(key)){tm.put(key, value+tm.get(key));}else{tm.put(key, value);}}for(Integer key:tm.keySet()){System.out.println(key+" "+tm.get(key));}}}
方法二:
import java.util.*;public class Main {public static void main(String[] args) {Scanner scan =new Scanner(System.in);int n =scan.nextInt();Map<Integer, Integer> tm =new TreeMap<Integer, Integer>(); for(int i=0;i<n;i++) { int key =scan.nextInt(); int value =scan.nextInt(); if(tm.containsKey(key)) { tm.put(key, value+tm.get(key)); } else { tm.put(key, value); } } for(Integer key : tm.keySet()) { System.out.println(key+" "+tm.get(key)); } }}
0 0
- 华为OJ——合并表记录
- 华为OJ——合并表记录
- 华为OJ——合并表记录
- 华为OJ:合并表记录
- 【华为OJ】合并表记录
- 华为OJ(合并表记录)
- 华为OJ(合并表记录)
- 【华为OJ】【008-合并表记录】
- 华为OJ 初级:合并表记录
- 华为oj初级 合并表记录
- 华为机试——合并表记录
- 华为机试——合并表记录
- 华为OJ_1956_合并表记录
- 【华为OJ8】合并表记录
- 8——合并表记录
- 合并表记录(华为机试题)
- 华为机试题:合并表记录
- 华为机试 合并表记录
- POJ 3668 Game of Lines
- waitUntilDone YES/ NO
- 2dx-lua Other Linker Flags 设置成 -ObjC 真机编译报错"_GCControllerDidDisconnectNotification"
- 创建线程的两种方法
- hibernate 多对1
- 华为OJ——合并表记录
- JDK1.7中的ThreadPoolExecutor源码剖析
- HDFS的Java接口
- 转] Hibernate不能自动建表解决办法(hibernate.hbm2ddl.auto) (tables doesn't exist)
- docker专题(2):docker常用管理命令(上)
- 深度学习框架Theano利用GPU加速
- confluence5.10破解安装,中文包问题
- Mac 上使用 GitHub Desktop
- (转)Activity的生命周期