题解 | #合并表记录#

合并表记录

http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*;

/**

  • 合并表记录 / public class MergeTableRecord { /*
    • 描述
    • 数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,
    • 即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
    • 提示:
    • 0 <= index <= 11111111
    • 1 <= value <= 100000
    • 输入描述:
    • 先输入键值对的个数n(1 <= n <= 500)
    • 接下来n行每行输入成对的index和value值,以空格隔开
    • 输出描述:
    • 输出合并后的键值对(多行)
    • 示例1
    • 输入:4
    •  0 1
      
    •  0 2
      
    •  1 2
      
    •  3 4
      
    • 复制
    • 输出:0 3
    •  1 2
      
    •  3 4
      
    • 示例2
    • 输入:3
    •  0 1
      
    •  0 2
      
    •  8 9
      
    • 输出:0 3
    •  8 9
      
    */ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Map<Integer,Integer> iv = new TreeMap<>(); String str; while ((str = br.readLine()) != null){ int rowNum = Integer.parseInt(str); while (rowNum != 0){ rowNum -= 1; String row = br.readLine(); String[] rows = row.split(" "); if (iv.containsKey(Integer.parseInt(rows[0]))) { int value = iv.get(Integer.parseInt(rows[0])) + Integer.parseInt(rows[1]); iv.put(Integer.parseInt(rows[0]), value); }else { iv.put(Integer.parseInt(rows[0]),Integer.parseInt(rows[1])); } } Set keys = iv.keySet(); for (Integer key : keys) { System.out.println(key+" "+iv.get(key)); } iv.clear(); } } }
全部评论

相关推荐

码农索隆:想看offer细节
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务