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

电子商务网站建设的方法有哪些百度建立企业网站建设的目的

电子商务网站建设的方法有哪些,百度建立企业网站建设的目的,wordpress 显示指定分类文章列表,成都网站托管外包LeetCode-347. 前 K 个高频元素【数组 哈希表 分治 桶排序 计数 快速选择 排序 堆(优先队列)】 题目描述:解题思路一:哈希表记录出现次数,然后用最小堆取,因为每次都是弹出最小的,剩下的一定是K…

LeetCode-347. 前 K 个高频元素【数组 哈希表 分治 桶排序 计数 快速选择 排序 堆(优先队列)】

  • 题目描述:
  • 解题思路一:哈希表记录出现次数,然后用最小堆取,因为每次都是弹出最小的,剩下的一定是K个最大的。
  • 解题思路二:直接排序
  • 解题思路三:堆
  • 解题思路三:快速排序

题目描述:

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

示例 1:

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

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

提示:

1 <= nums.length <= 105
k 的取值范围是 [1, 数组中不相同的元素的个数]
题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的

进阶:你所设计算法的时间复杂度 必须 优于 O(n log n) ,其中 n 是数组大小。

解题思路一:哈希表记录出现次数,然后用最小堆取,因为每次都是弹出最小的,剩下的一定是K个最大的。

import heapq # 默认是最小堆
class Solution:def topKFrequent(self, nums: List[int], k: int) -> List[int]:map_ = {}for i in range(len(nums)):map_[nums[i]] = map_.get(nums[i], 0) + 1pri_que = []for key, freq in map_.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

时间复杂度:O(nlogk)
空间复杂度:O(n)

解题思路二:直接排序

class Solution:def topKFrequent(self, nums: List[int], k: int) -> List[int]:count = collections.Counter(nums)return [item[0] for item in count.most_common(k)]

时间复杂度:O(nlogn)
空间复杂度:O(n)

解题思路三:堆

class Solution:def topKFrequent(self, nums: List[int], k: int) -> List[int]:count = collections.Counter(nums)heap = [(val, key) for key, val in count.items()]return [item[1] for item in heapq.nlargest(k, heap)]

时间复杂度:O(nlogn)
空间复杂度:O(n)

解题思路三:快速排序

在这里插入图片描述

class Solution:def topKFrequent(self, nums: List[int], k: int) -> List[int]:count = collections.Counter(nums)num_cnt = list(count.items())topKs = self.findTopK(num_cnt, k, 0, len(num_cnt) - 1)return [item[0] for item in topKs]def findTopK(self, num_cnt, k, low, high):pivot = random.randint(low, high)num_cnt[low], num_cnt[pivot] = num_cnt[pivot], num_cnt[low]base = num_cnt[low][1]i = lowfor j in range(low + 1, high + 1):if num_cnt[j][1] > base:num_cnt[i + 1], num_cnt[j] = num_cnt[j], num_cnt[i + 1]i += 1num_cnt[low], num_cnt[i] = num_cnt[i], num_cnt[low]if i == k - 1:return num_cnt[:k]elif i > k - 1:return self.findTopK(num_cnt, k, low, i - 1)else:return self.findTopK(num_cnt, k, i + 1, high)

时间复杂度:O(n)
空间复杂度:O(n)

http://www.yayakq.cn/news/693412/

相关文章:

  • 黑白高端网站建设wordpress付费查看vip购买查看
  • 自媒体采集网站建设直播网站开发接入视频
  • centos做网站服务器吗百度做广告怎么做
  • 电商网站建设与维护试题免费推荐大全app下载
  • sns社交网站开发教程移动端社区 wordpress
  • 做网站设计的总结各大网站响应生态建设
  • 不知情的情况下帮别人做网站他违法营销比较好的知名公司有哪些
  • 青岛做网站多少钱单位网站的方案
  • 今天济南刚刚发生的新闻广州优化网站关键词
  • 做众筹的网站营销策略国内外文献综述
  • 营销网站开发找哪家天津市网站建设+网页制作
  • 广州沙河一起做网站wordpress 开发实例
  • 中国小康建设网 官方网站哪个app推广佣金高
  • 重庆网站备案系统中国新设计师联盟
  • 商丘旅游网站的建设网站推广工作
  • 温州网站定制公司哪家好好大夫在线免费咨询
  • 投注类网站怎么做自动软件做后期哪个网站素材好
  • 自己电脑做电影网站做网站的表情包
  • 长安网站建设软件开发thinkphp 微网站开发
  • 铜官山区建设局网站成都创软科技的口碑
  • 有没有免费网站制作电脑做网站电脑编程
  • 桂林网站推广网站建设提案怎么写
  • 什么网站下载素材做图的自己做网站怎么跳过备案
  • 中国网站用Cn域名金融投资理财网站建设
  • 河南建筑公司实力排名网络规划与优化技术学什么
  • 深圳网站建设服务公内蒙古网站建设熊掌号
  • 公司部门网站设计模板熊掌号如何做网站
  • 学校加强网站建设gps建站步骤视频
  • 网站跳出率 报告网站建设满意度调查问卷
  • 旺苍网站建设jsp网站开发难点