题解 | #合并表记录#

合并表记录

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

import java.util.*;
import java.io.*;
public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str=null;
        while((str=br.readLine())!=null){//输入非空进行
            int n=Integer.parseInt(str);//将输入n转为int型
            int indexs[]=new int[n];//构建一个长为n的indexs数组 
            for(int i=0;i<n;i++){
                indexs[i]=-1;
            }//数组indexs值全=-1
            Map<Integer,Integer> map=new HashMap<>();//Map接口,表示键值对的存储结构,此为添加一个键值对
            for(int i=0;i<n;i++){//把该过程循环四次,循环内容和i无关
                String v_k[]=br.readLine().split(" ");//用指定的分隔符(如空格)调用spilt方法对字符串进行分割
                int index=Integer.parseInt(v_k[0]);//存入键,提取数组中的值,index是最新的数值
                int value=Integer.parseInt(v_k[1]);//存入值,提取数组中的值,value是最新的数值
                for(int j=0;j<n;j++){
                    if(indexs[j]==-1||indexs[j]==index){
                        indexs[j]=index;
                        break;//break是终止循环语句,例如for循环和while循环,不是终止if语句
                    }
                }//找到k_y对要放进去的数组
                map.put(index,map.getOrDefault(index,0)+value);//在for循环中,如果没有重复的键,则读写最新的值,如果有重复的键,则把新值加在旧值上重新读写数据(重新添加键值对)getOrDefault(index,0),没有index键,则返回值为0,有则返回值
            }
            Arrays.sort(indexs);//对数组进行从小到大的排序
            for(int i=0;i<n;i++){
                if(indexs[i]!=-1){//剔除数组中值为-1的数
                    int value=map.get(indexs[i]);//取值
                    System.out.println(indexs[i]+" "+value);//输出值 
                }
            }
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 13:15
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 14:45
bg是二本双一流硕,目标是Java后端开发岗,投暑期实习0大厂面试,只有极少的大厂测开,可能投的晚加上简历太烂加上0实习?求大佬们给个建议
程序员小白条:别去小厂,初创或者外包,尽量去中小,100-499和500-999,专门做互联网产品的,有公司自研的平台和封装的工具等等,去学习一些业务相关的,比如抽奖,积分兑换,SSO认证,风控,零售等等,目标 Java 后端开发吗?你要不考虑直接走大厂测开?如果技术不行的话,有面试你也很难过的
实习,不懂就问
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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