请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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'],按照视频方式会出现字母比较大小,而不是次数比较大小

正在回答 回答被采纳积分+3

4回答

一笑奈何qq 2023-04-01 16:20:08
我也很疑惑,h.insert({value,key})中的对象{value,key}怎么可以这么写?
0 回复 有任何疑惑可以回复我~
  • 我觉得这是es6的简化写法,实际上传入的是这样的
        {
          value: value,
          key: key
        }
    回复 有任何疑惑可以回复我~ 2023-08-05 09:43:57
weixin_慕函数4026144 2021-11-10 11:32:23

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

0 回复 有任何疑惑可以回复我~
林威廉 2021-07-11 23:46:03

我的理解是:

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

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

 nums.forEach(n=> {

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

})

這段的映射關係的

0 回复 有任何疑惑可以回复我~
lewis 2021-01-27 12:37:47

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信