当前位置: 首页 > news >正文

陕西高速公路建设集团网站国外网站后缀

陕西高速公路建设集团网站,国外网站后缀,建筑设计大师,域名注册新网参考题解 题目:给定一个数组,输出 前k个高频元素。 思路: 遍历数组,建立小根堆(小根堆的元素是元组(num,freq),排序规则是每个元素的频率)。 下面使用数组‘heap’&…

参考题解

题目:给定一个数组,输出 前k个高频元素。
思路:
遍历数组,建立小根堆(小根堆的元素是元组(num,freq),排序规则是每个元素的频率)。
下面使用数组‘heap’,函数’shift_down’,函数‘shift_up’等实现小根堆及其调整(上浮、下沉)。

 def topKFrequent(self, nums: List[int], k: int) -> List[int]:def shift_down(arr,root,k):# 下沉的原因是,新换了堆顶,我们需要为这个堆顶元素找到它在堆中的正确位置# k表示目前堆的有效大小val=arr[root] # root node : <num,freq>while root<<1 <k:child=root<<1if child|1<k and arr[child|1][1]<arr[child][1]:child|=1if arr[child][1]<val[1]:arr[root]=arr[child]root=childelse:breakarr[root]=valdef shift_up(arr,child):# 上浮调整操作,# 上浮原因是,我们在堆的末尾添加了新元素,我们需要为这个新元素找到它在堆中的正确位置val=arr[child]while child>>1 >0 and arr[child>>1][1]>val[1]:arr[child]=arr[child>>1]child>>=1arr[child]=valstat=collections.Counter(nums)# 清点数组nums中的元素个数stat=list(stat.items())heap=[(0,0)] # 用(0,0)做垫底,为了实现在数组中方便找到父子节点之间的联系,如果父节点的索引是root,那么左孩子的索引是root<<1,右孩子的索引是(root<<1)|1。相反地,如果孩子的索引是child,那么父的索引是child>>1for i in range(k):heap.append(stat[i])shift_up(heap,len(heap)-1)for i in range(k,len(stat)):if heap[1][1]<stat[i][1]:heap[1]=stat[i]shift_down(heap,1,k+1)return [item[0] for item in heap[1:]]
http://www.yayakq.cn/news/112696/

相关文章:

  • 秦皇岛网站制作服务最好的免费crm系统
  • 江苏建设网站首页wordpress电脑主题
  • 聊天app开发源码一个新的网站怎么做优化
  • 企业网站建设框架试玩平台wordpress
  • 做的时间长的网站制作公司咨询公司排名前十
  • 长沙网站开发公司网站内容建设规划
  • 河南代做网站长沙人才市场招聘
  • 网站制作技巧免费旅游网站源码下载
  • 金乡做网站 亿九简单美食网页设计模板
  • 外贸网站建设报价表福州mip网站建设
  • 做网站原创要多少钱泉州市建设工程交易网站
  • 国内网站不备案禅城区电话黄页
  • 珠宝店网站项目网页设计wordpress程序员博客
  • php mysql网站开发全程实例 pdf中山网红粥
  • 快速网站排名提升家居企业网站建设市场
  • 如何查询网站点击率用php 如何做网站
  • 开一个网站需要多少钱做公司网站需要准备什么科目
  • 网站做管制户外刀具网站被黑客攻击怎么办
  • 网站二维码悬浮wordpress修改访问量
  • 网站设计公司有名乐云seo建立平台网站需要花多少钱
  • 孝感网站建设孝感南充建设网站
  • 什么软件做电影短视频网站线上推广网络公司
  • 太仓网站建设网站推广内推网
  • 什么是网站域名拓者吧室内设计网站
  • 徐州网站建设制作公司成都网站建设全美
  • 自己建私人网站做外贸不好做百度网盘网站入口
  • 淄博做网站的公司都有哪些火车头采集wordpress
  • 唐山市建设交易中心官方网站电商网站建设与运营实训
  • 全球最佳获奖包装设计梅州网站优化
  • 做网站的为什么不给域名和密码施工企业资质新规定