Day 34/100 (华为机试)合并表记录

写在前面的话

有个感觉,做题的过程,像是抽象地实现底层原理;

无论最终结果如何,都会有所收获,加深对于底层原理的理解;

从今天开始,打算弄个错题本~

 

(一)题目

题目描述

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

输入描述:

先输入键值对的个数

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

输出描述:

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

示例1

输入

4

0 1

0 2

1 2

3 4

输出

0 3

1 2

3 4

 

(二)解题思路

1、本质上是相同内存地址的数值相加

实现的方式有蛮多,比如将得到的数据,存到数组中,遍历合并相同的arr[0](即索引)

我这里实现的是用数组索引来实现的,定义数组,当数组;

并将第一个arr[0]真的存储为数组的索引,如果没有值,就添加,如果索引中有值,则相加

 

2、将得到的数组,按照索引,数据的方式打印即可

tmp.forEach((data,index)=>{

    console.info(index,data)

})

 

3、本地调试代码

 

本地和在线调试代码的原理是一样的,区别是两者的数据输入方式是不一样的

 

在线调试代码

 

每次看到通说的弹窗,都会比较开心~

通过弹窗

 

看了下其他大神,通过的代码,从占用内存上,已经达到最优内存占比。

但运行时间多了2ms~

之后需要看看,时间复杂度怎么可以降下来~

 

参考链接:

https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201?tpId=37&&tqId=21231&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking

 

以上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值