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

湖南现在有什么网站做农副产品沈阳个人网站建设代理品牌

湖南现在有什么网站做农副产品,沈阳个人网站建设代理品牌,网站优化软件排名,建站快车凡科文章目录 题目题解1. 字典排序1. 字典最小堆 题目 347. 前k个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2] 示例 2: 输入: nums […

文章目录

    • 题目
    • 题解
      • 1. 字典+排序
      • 1. 字典+最小堆

题目

347. 前k个高频元素

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

示例 1:

输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]

示例 2:

输入: nums = [1], k = 1
输出: [1]

题解

1. 字典+排序

nlog(n)

class Solution(object):def topKFrequent(self, nums, k):""":type nums: List[int]:type k: int:rtype: List[int]"""dict_result = {}for num in nums:if num not in dict_result:dict_result[num] = 1else:dict_result[num] += 1sorted_list = sorted(dict_result.items(), key=lambda item: item[1], reverse=True)result = []for i in range(k):result.append(sorted_list[i][0])return result

1. 字典+最小堆

nlog(k)

class Solution(object):def topKFrequent(self, nums, k):""":type nums: List[int]:type k: int:rtype: List[int]"""# 字典:nlog(n)dict_result = {}for num in nums:if num not in dict_result:dict_result[num] = 1else:dict_result[num] += 1#对频率排序#定义一个小顶堆,大小为kpri_que = [] #小顶堆for key, freq in dict_result.items():# 最小堆heapq.heappush(pri_que, (freq, key))if len(pri_que) > k:heapq.heappop(pri_que)result = [0] * kfor i in range(k-1, -1, -1):result[i] = heapq.heappop(pri_que)[1]return result
  • 统计频次:首先使用字典 dict_result 统计每个数字的频率。

  • 最小堆:通过 heapq 模块来实现最小堆,堆中存储的是 (频次, 数字) 元组。

  • 每次将一个 (freq, num) 元组插入堆中。如果堆的大小超过了 k,则移除堆顶元素(频率最小的元素)。这样堆中始终保存的是频率最高的 k 个元素。

  • 结果提取:从堆中提取出 k 个数字,并返回这些数字。

  • 时间复杂度:
    O(n log k):遍历 nums 中的 n 个元素,每次操作堆的时间复杂度为 O(log k),因此总时间复杂度为 O(n log k)。

heapq 是 Python 内置的一个模块,用于实现 堆队列算法(也称为优先队列)。该模块提供了一个基于列表的最小堆实现。最小堆是一个二叉堆,其中每个父节点的值都小于或等于其子节点的值,因此堆顶总是最小的元素。

主要功能: 最小堆:heapq 默认实现的是最小堆(即堆顶是最小的元素)。可以用它来管理优先级队列等问题,自动保持元素的排序。

  • 堆排序:通过使用 heapq,可以高效地获取最小或最大元素。

  • 支持堆操作:heapq 提供了用于堆操作的几种函数,最常用的包括:

    • heappush(heap, item):将元素 item 添加到堆中,保持堆的性质。

    • heappop(heap):弹出堆顶元素(即最小元素),并保持堆的性质。

    • heapify(list):将一个列表转化为堆。

    • heappushpop(heap, item):将元素 item 添加到堆中并弹出堆顶元素。

    • heapreplace(heap, item):弹出堆顶元素,并将 item 添加到堆中。

最小堆的性质: 每个父节点的值都小于或等于其子节点的值,这使得堆顶元素始终是最小的元素。

在 heapq 模块中,堆是用列表实现的,列表的第一个元素始终是堆顶元素。


文章转载自:

http://C3TV34Jx.Lhzqn.cn
http://QF7Fwv4P.Lhzqn.cn
http://sCVQeHBL.Lhzqn.cn
http://Ntl8370Q.Lhzqn.cn
http://qmkZ9FdJ.Lhzqn.cn
http://tDkfDrpu.Lhzqn.cn
http://swwmqHRH.Lhzqn.cn
http://Ce4fvCe9.Lhzqn.cn
http://JxxooYlm.Lhzqn.cn
http://PuY1cGLq.Lhzqn.cn
http://oN8XgK3n.Lhzqn.cn
http://PWpBn6ND.Lhzqn.cn
http://GB6kjLUE.Lhzqn.cn
http://lQlgqTks.Lhzqn.cn
http://kRMv5l0E.Lhzqn.cn
http://O7QdILux.Lhzqn.cn
http://1ykGpId9.Lhzqn.cn
http://QCK0vaBY.Lhzqn.cn
http://UTAKciEF.Lhzqn.cn
http://eoXWuZEb.Lhzqn.cn
http://2Yuzrjdr.Lhzqn.cn
http://vlLVySV4.Lhzqn.cn
http://RzsS4yB5.Lhzqn.cn
http://drfNknZk.Lhzqn.cn
http://yqNhsZ77.Lhzqn.cn
http://fBxRSDGn.Lhzqn.cn
http://8N1VVgnE.Lhzqn.cn
http://74mKZa2u.Lhzqn.cn
http://gKJqzgU9.Lhzqn.cn
http://b4GTPjji.Lhzqn.cn
http://www.dtcms.com/wzjs/769661.html

相关文章:

  • 做订票网站设计要多久优化大师官网登录入口
  • 简洁大气的网站设计建筑知识网站
  • 房屋网站企业网站建站系统哪个好用
  • 中国禹路由网站建设中关键词搜索排名怎么查看
  • WordPress moe acg页面seo优化
  • 临沂搜索引擎网站推广ps制作网页步骤
  • 茂名网站建设解决方案手机网站设计咨询
  • 做网站用什么语言数据库网上申请营业执照
  • 济南高新区 网站建设国外网站建设视频教学
  • 网站开发播放大视频卡顿北海 网站建设 公司
  • 大连h5网站建设自己制作app的应用程序
  • 少林寺网站谁做的电脑网站显示安全证书有问题怎么解决
  • 国外网站在国内做镜像站点python做h5网站
  • 泰安建设工程招聘信息网站wordpress搭建在线教育
  • 做进口产品的网站注册公司登陆哪个网站
  • 如何制作个人作品网站东莞常平医院
  • 京东这样的网站怎么做福州seo公司排名
  • 集团网站开发专业网页制作什么价格
  • 自己做的网站服务器开了进不去精美网站建设
  • 网站广告设计做网站月薪
  • 佛山新网站建设机构摄影网站 蜂鸟
  • 免费浏览网站的软件wordpress批量修改引用网址
  • 推广型的网站怎么做wordpress seo h1标签
  • 深圳市宝安区建设工程交易中心seo排名优化代理
  • 滨海新区商城网站建设领优惠券的网站是怎么做的
  • 密云区社区建设网站沧州工商联网站建设
  • 效果图网站源码关于网站建设分类
  • 企业推广是什么意思网站seo推广招聘
  • 淄博高端网站建设乐达wordpress页面的添加
  • 做企业门户网站要准备哪些内容网站建设服务器环境配置