zoukankan      html  css  js  c++  java
  • 牛客网——华为机试(题8:合并表记录)(Java)

    题目描述:

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

    输入描述:

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

    输出描述:

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

    示例1:

    输入:

    4
    0 1
    0 2
    1 2
    3 4

    输出:

    0 3
    1 2
    3 4

    代码: 

    import java.util.Map;
    import java.util.Scanner;
    import java.util.Set;
    import java.util.TreeMap;
    
    public class Main {
    	public static void main (String[] args) {
    		Scanner in = new Scanner(System.in);
    		Map<Integer,Integer> map = new TreeMap<Integer,Integer>();
    		int n = in.nextInt();
    		in.nextLine();
    		map.put(in.nextInt(), in.nextInt());
    		in.nextLine();
    		for(int i=1;i<n;i++) {
    			int a = in.nextInt();
    			int b = in.nextInt();
    			if(map.containsKey(a)) {
    				int c = map.get(a);
    //				map.remove(a);
    				map.put(a, b+c);
    			}
    			else {
    				map.put(a, b);
    			}
    		}
    		Set<Integer> s = map.keySet();
    		for(Integer i : s) {
    			System.out.println(i+" "+map.get(i));
    		}		
    	}
    }
    
  • 相关阅读:
    zoj-3433-Gu Jian Qi Tan
    优先队列详解(转载)
    HDU-3661-Assignments
    hdu-1052-Tian Ji -- The Horse Racing(经典)
    POJ-1456-Supermarket
    UVA-11292Dragon of Loowater
    UVA-11729-Commando War
    循环日程表 问题(递归分治)
    八数码问题
    POJ-3273 Monthly Expense (最大值最小化问题)
  • 原文地址:https://www.cnblogs.com/cg-bestwishes/p/10681169.html
Copyright © 2011-2022 走看看