遍历中value与key的赋值是不是写错了

来源:10-4 LeetCode:347. 前 K 个高频元素

慕用6828665

2021-01-26

m.forEach((value, key) => {
// 应该把map中的value当作新对象的value,key当作新对象的key
// 因为最终是通过新对象的value比较大小

  h.insert({key, value})
  if(h.size() > k){
    h.pop()
  }
})

之所以视频中没有错误,因为数组中是数字,得到的m中value刚好是1,2,3
如果换成['a','a','b','c','c','c'],按照视频方式会出现字母比较大小,而不是次数比较大小
写回答

4回答

一笑奈何qq

2023-04-01

我也很疑惑,h.insert({value,key})中的对象{value,key}怎么可以这么写?
0
1
Gordon233
我觉得这是es6的简化写法,实际上传入的是这样的 { value: value, key: key }
2023-08-05
共1条回复

weixin_慕函数4026144

2021-11-10

字典的forEach方法,箭头函数中第一个参数接收的是键值,第二个参数接收的是键。没有写错。

0
0

林威廉

2021-07-11

我的理解是:

key是唯一值,所以要把key當作map裡的出現的數字值,而value作為該key出現的次數值

因為如果顛倒過來,把出現的次數作為key,是沒辦法對應到

 nums.forEach(n=> {

        map.set( n, map.has(n) ? map.get(n) +1 : 1 )

})

這段的映射關係的

0
0

lewis

2021-01-27

按照实际场景分析具体问题,如果场景有变,允许调整

0
0

JavaScript版数据结构与算法 轻松解决前端算法面试

夯实算法基础,填补技术短板,助力面试考题最后一公里

2479 学习 · 683 问题

查看课程