第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【九月打卡】第5天 數(shù)據(jù)結(jié)構(gòu)之“堆”

標(biāo)簽:
JavaScript

课程名称:JavaScript版数据结构与算法
课程章节:第10章 数据结构之“堆”
主讲老师:lewis

课程内容:

今天学习的内容包括:
10-4 LeetCode:347. 前 K 个高频元素——返回出现频率最高的K个元素。
10-5 LeetCode:23. 合并K个排序链表——最小堆的堆顶就是新链表的下一个节点,以此处理即可。
10-6 堆-章节总结——堆是一种特殊的完全二叉树。
10-7 【勤于思考,夯实学习成果】阶段思考题——完成对应作业。

课程收获:

347. 前 K 个高频元素

1、将元素循环插入最小堆。
2、通过h.size()判断堆是否大于K,如果大于K,将堆顶推出,直到只剩下 size 等于 K。
3、返回第K个高频元素,即堆顶。

nums.forEach(n=>{
    h.insert(n)
    if(h.size() > k){
      h.pop()
    }
  })

23. 合并K个排序链表

1、构建一个最小堆,并依次把链表头插入堆中。
2、弹出堆顶接到输出链表,并将堆顶所在链表的新链表头插入堆中。
3、等堆元素全部弹出,合并工作就完成了。

while (h.size()){
    const n = h.pop()
    p.next = n
    p = p.next
    if(n.next) h.insert(n.next)
  }

堆-章节总结

1、堆是一种特殊的完全二叉树
2、所有的节点都大于等于(最大堆)或小于等于(最小堆)它的子节点。
3、JS 中通常用数组表示堆。
4、堆能高效、快速地找出最大值和最小值,时间复杂度:O(1)。
5、找出第K个最大(小)元素。

个人总结:最小堆MinHeap方法核心记录

1、最小堆插入数据时,做对比交换shiftUp。

 insert(value){
    this.heap.push(value)
    this.shiftUp(this.heap.length-1)
  }
 shiftUp(index){
    if(index === 0) return
    const parentIndex = this.getParentIndex(index)
    if(this.heap[parentIndex] > this.heap[index]){
      this.swap(parentIndex,index)
      this.shiftUp(parentIndex)
    }
  }

2、两个元素互换,在排序算法中也常用到。

  swap(i,j){
    const temp = this.heap[i]
    this.heap[i] = this.heap[j]
    this.heap[j] = temp
  }

3、将堆顶推出后,将尾元素放入堆顶,跟原子节点比对互换。

pop(){
    this.heap[0] = this.heap.pop()
    this.shiftDown(0)
  }
shiftDown(index){
    const leftIndex = this.getLeftIndex(index)
    const rightIndex = this.getRightIndex(index)
    if(this.heap[leftIndex] < this.heap[index]){
      this.swap(leftIndex,index)
      this.shiftDown(leftIndex)
    }
    if(this.heap[rightIndex] < this.heap[index]){
      this.swap(rightIndex,index)
      this.shiftDown(rightIndex)
    }
  }

今天学完了 数据结构之“堆”,理论知识已经会了,怎么在实际工作中使用,如何使用我还是模糊的,慢慢来吧,一步一个脚印,今天先到这把,对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

https://img4.sycdn.imooc.com/631aa6fd0001e83f23941425.jpg

https://img1.sycdn.imooc.com/631ab151000156af23811432.jpg

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消