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

国外socks5代理ip地址2023网站优化 济南

国外socks5代理ip地址2023,网站优化 济南,波音网站开发,2021年加盟好项目滑动窗口最大值和前K个高频元素 239. 滑动窗口最大值 核心:建立一个单调队列,维护里面的最大值,并且从大到小的顺序即可!【只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是由大到小的。…

滑动窗口最大值和前K个高频元素

239. 滑动窗口最大值

核心:建立一个单调队列,维护里面的最大值,并且从大到小的顺序即可!【只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是由大到小的。
from collections import deque
class MyQueue:def __init__(self):self.queue = deque()# 弹出的时候需要比较出口元素是否相等!相等弹出def pop(self,value):if self.queue and value == self.queue[0]:self.queue.popleft()# 维护队列中的元素的从大到小的def push(self, value):while self.queue and value > self.queue[-1]:self.queue.pop()self.queue.append(value)def front(self):return self.queue[0]
# 先判断前面的元素弹出,在插入后面的元素
class Solution:def maxSlidingWindow1(self, nums: List[int], k: int) -> List[int]:que = MyQueue()result = []for i in range(k):que.push(nums[i])result.append(que.front())for i in range(k,len(nums)):# 滑动窗口移除到最前面元素que.pop(nums[i - k])# 滑动窗口前加入最后的元素que.push(nums[i])result.append(que.front())return resultdef maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:# 自己实现单调队列que = []result = []for i in range(k):while que and que[-1] < nums[i]:que.pop(-1) # list.pop()时间复杂度是o(N) 这里会超时que.append(nums[i])result.append(que[0])for i in range(k,len(nums)):if que and que[0] == nums[i - k]:que.pop(0)while que and que[-1] < nums[i]:que.pop(-1)que.append(nums[i])result.append(que[0])return result

347. 前 K 个高频元素

核心:利用字典排序的一些方法!这些方法比较解题关键!
第一种
f = zip(d.keys(), d.values())
c =sorted(f)
第二种
a = sorted(d.items(), key=lambda x: x[1])
a1 = sorted(d.items(),key = lambda x:x[1],reverse = True)
import heapq
class Solution:def topKFrequent1(self, nums: List[int], k: int) -> List[int]:dict_1 = {}res = []for v in nums:if v in dict_1:dict_1[v] += 1else:dict_1[v] = 1a1 = sorted(dict_1.items(),key = lambda x:x[1],reverse = True)# print(a1)for i in a1[:k]:res.append(i[0])return res# 使用堆来实现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) + 1 # 对map进行排序# 定义一个小顶堆 大小为kpri_que = []for key, value in map_.items():heapq.heappush(pri_que, (value, key))if len(pri_que) > k: # 如果堆的大小大于了K 则队列弹出,保证对大小为kheapq.heappop(pri_que)result = [0] * kfor i in range(k - 1, -1, -1):result[i] = heapq.heappop(pri_que)[1]return result
http://www.yayakq.cn/news/34155/

相关文章:

  • 安溪网站制作wordpress过去指定分类文章
  • php网站开发案例pdf搜题在线使用网页版
  • 网站网页链接上海先进网站建设公司
  • 网站设计大概多少钱数据分析网官网
  • 手机小游戏网站大全提交您的网站
  • 织梦电影网站模板下载学做网站论坛好吗
  • 医院建设网站的作用买网站需要注意什么
  • 哪里找做网站的公司wordpress 主题授权
  • wordpress 电影下载站源码提供网站制作公司哪家专业
  • 货源网站青岛wordpress建站
  • 建设网站请示宣传国内好点的wordpress主题
  • 做乡镇网站市场网站建设
  • 在线做网站免费黄搞系统优化软件十大排名
  • 古建设计素材网站软件开发文档编制规范
  • 绮思网站建设qswoo坂田公司做网站
  • 前端做网站难吗四川住房建设和城乡建设厅假网站
  • 电子商务网站建设与管理课后题答案网店推广的平台有哪些
  • 摄影素材网站山西网站推广
  • 网站内容和备案不一样如何做网络运营
  • 中科时代建设官方网站做视频的网站那几个盈利了
  • 云南网站建设哪家权威wordpress app主题
  • 网站建设全过程wordpress修改固定连接打不开
  • 网站开发的任务要求网站如何配置域名
  • 网站开发的8个步骤如何在微信上开小程序
  • 需要做网站的行业中土集团北方建设有限公司网站
  • 广州好的网站建设织梦网站默认密码
  • 做任务转比特币的网站百度网站站长工具
  • 企业网站网络营销案例分析东莞网站开发建设
  • 一个网站可以做几级链接自己电脑做网站服务器系统
  • 郑州 网站建设 东区网络科技公司logo