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

企业网站模板 演示浙江微信网站建设

企业网站模板 演示,浙江微信网站建设,网络推广平台中心,中高端网站开发1.1滑动窗口最大值 给你一个整数数组 nums#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 输入#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 输出有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 输入nums [1,3,-1,-3,5,3,6,7], k 3 输出[3,3,5,5,6,7] 优先队列 优先队列具有队列的所有特性包括队列的基本操作只是在这基础上添加了内部的一个排序它本质是一个堆实现的。 在优先队列中元素被赋予优先级。当访问元素时具有最高优先级的元素最先删除。优先队列具有最高级先出他和队列不同的就在于我们可以自定义其中数据的优先级,让优先级高的排在队列前面,优先出队。 python的heapq堆 堆是一个二叉树有两种堆,最大堆与最小堆。 heapq库中的堆默认是最小堆。 1.最小堆树中各个父节点的值总是小于或等于任何一个子节点的值。 2.最大堆树中各个父节点的值总是大于或等于任何一个子节点的值。 import heapq qheapq.heapify([3,6,4,1]) #将列表转化为堆 heapq.heappush(q,item) #往堆q里面添加元素item heapq.heappop(q) #删除q中顶部元素 heapq.heapreplace(q,100) #删除顶部元素加入新值100 #比较77和q中顶部元素77如果大删除并返回第一个元素如果小返回77原堆不变 heapq.heappushpop(q,77) heapq.nlargest(n,q/[3,6,4,1]) #返回堆中最大的前n个 heapq.nsmallest(n,q/[3,6,4,1]) #返回堆中最小的前n个代码 返回最大值所以优先级采用负数 def maxSlidingWindow(self,nums,k):nlen(nums)#heapq默认为小根堆我们要找最大值所以使用-nums[i]为优先级#-nums[i]为优先级 i为数据下标作为数据传入前k个数据q[(-nums[i],i) for i in range(k)] heapq.heapify(q) #将列表转化为堆res[-q[0][0]] #q[0](-3,-1) -q[0][0]3 第一个滑动窗口的最大值for i in range(k,n):heapq.heappush(q,(-nums[i],i)) #添加新元素#如果数据出现在滑动窗口的左侧将其从堆中删除while q[0][1]i-k: #i是滑动窗口的右侧i-k是滑动窗口的左侧heapq.heappop(q)res.append(-q[0][0]) #存储栈顶的元素return res1.2最小覆盖子串 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串则返回空字符串 “” 。 注意 对于 t 中重复字符我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串我们保证它是唯一的答案。 输入s “ADOBECODEBANC”, t “ABC” 输出“BANC” 解释最小覆盖子串 “BANC” 包含来自字符串 t 的 ‘A’、‘B’ 和 ‘C’。 枚举 for i,item in enumerate([2,3,4]):print(i,item) 0 2 1 3 2 4for i,item in enumerate([2,3,4],start10):print(i,item) 10 2 11 3 12 4代码 def minWindow(self, s: str, t: str) - str:need collections.defaultdict(int)for c in t:need[c] 1 needCnt len(t)i 0 # 记录起始位置res (0, float(inf)) # 用两个元素方便之后记录起终点# 三步骤# 1. 增加右边界使滑窗包含tfor j, c in enumerate(s):if need[c] 0:needCnt - 1need[c] - 1 # 这行放在外面不可以看19行 need[c] 0# 2. 收缩左边界直到无法再去掉元素 !注意处理的是iif needCnt 0: #此时已经包含了t所需的所有元素while True:c s[i]if need[c] 0: # 表示再去掉就不行了(need0)breakelse:need[c] 1i 1if j - i res[1] - res[0]: # 这里是否减一都可以只要每次都是这样算的就行反正最后也是输出子串而非长度res (i, j)# 3. i多增加一个位置准备开始下一次循环(注意这步是在 needCnt 0里面进行的 )need[s[i]] 1needCnt 1 # 由于 移动前i这个位置 一定是所需的字母因此NeedCnt才需要1i 1return if res[1] len(s) else s[res[0]: res[1] 1]参考代码 参考博客 参考博客1 参考博客2
http://www.dnsts.com.cn/news/231034.html

相关文章:

  • 贵州做网站的公司有哪些wordpress站长之家
  • 网站开发网站制作报价十堰秦楚网论坛十堰城事
  • 建设网站北京ui培训讲师
  • django做的购物网站杭州app建设
  • 北京网站域名快速备案我国档案网站建设研究论文
  • 佛山新网站建设教程什么是网络营销和技巧
  • 宁波自助建站网站wordpress oss 防盗链
  • 广西智能网站建设制作顺德网站建设渠道
  • 流量查询网站python安卓app开发
  • 网站建设选亿企网络wordpress主题熊掌号
  • 哈尔滨建站人wordpress cms下载
  • 培训网站建设方案模板网页设计字体颜色代码
  • 返利网站开发计划书做微商哪个网站好
  • 如果网站没有做icp备案会被处罚广东莞业工程设计有限公司
  • 网站seo置顶 乐云践新专家安庆经济开发区人才网
  • 陕西网站建设电话国内免费的短视频素材网站
  • 空气源热泵热水器网站建设百度企业邮箱注册申请
  • 网站建设与优化推广方案内容哈尔滨双城区建设局网站
  • 做网站的时候表格怎么去掉容桂微信网站建设
  • 广州注册公司网上申请入口关键词优化排名的步骤
  • 网站升级通知自动跳跃发簪做的比较好的网站
  • 高端网站开放品牌购买网站
  • 做百度网站排怎么开通公众号
  • 仿站网站开发网站建设管理与维护ppt
  • 企业网站建设尚未实现宣传功能哪个网站做汽车保养比较好
  • 网站服务费网络建设会计分录百度地图嵌入wordpress
  • 济阳县做网站公司怎样做废旧网站
  • 中国水电建设集团网站阿里云怎样做商城式网站
  • 网站建设电话销售工作总结平面设计和电子商务哪个好
  • 在线查询网站开发语言烟台做网站哪家好