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

网页版微信官方优化大师兑换码

网页版微信官方,优化大师兑换码,做视频网站空间要多大,松江做网站的公司关于滑动窗口的概念,请自行到网上搜索相关资料,了解清楚再看本博客。 一、子组数最大平均数 LeetCode 第643题:https://leetcode.cn/problems/maximum-average-subarray-i/ 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你…

关于滑动窗口的概念,请自行到网上搜索相关资料,了解清楚再看本博客。 

一、子组数最大平均数

LeetCode 第643题:https://leetcode.cn/problems/maximum-average-subarray-i/

给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。

请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。

任何误差小于 10-5 的答案都将被视为正确答案。

输入:nums = [1,12,-5,-6,50,3], k = 4
输出:12.75
解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
class Solution:def findMaxAverage(self, nums: List[int], k: int) -> float:# Step 1# 定义需要维护的变量# 本题求最大平均值 (其实就是求最大和),所以需要定义sum_, 同时定义一个max_avg (初始值为负无穷)sum_, max_avg = 0, -math.inf# Step 2: 定义窗口的首尾端 (start, end), 然后滑动窗口start = 0for end in range(len(nums)):# Step 3: 更新需要维护的变量 (sum_, max_avg), 不断把当前值积累到sum_上sum_ += nums[end]if end - start + 1 == k:max_avg = max(max_avg, sum_ / k)# Step 4# 根据题意可知窗口长度固定,所以用if# 窗口首指针前移一个单位保证窗口长度固定, 同时提前更新需要维护的变量 (sum_)if end >= k - 1:sum_ -= nums[start]start += 1# Step 5: 返回答案return max_avg

二、至多包含两个不同字符的最长子串

LeetCode 第159题:https://leetcode.cn/problems/longest-substring-with-at-most-two-distinct-characters/ 

class Solution:def lengthOfLongestSubstringTwoDistinct(self, s: str) -> int:# Step 1: # 定义需要维护的变量, 本题求最大长度,所以需要定义max_len,# 该题又涉及计算不重复元素个数,因此还需要一个哈希表max_len, hashmap = 0, {}# Step 2: 定义窗口的首尾端 (start, end), 然后滑动窗口start = 0for end in range(len(s)):# Step 3# 更新需要维护的变量 (max_len, hashmap)# 首先,把当前元素的计数加一# 一旦哈希表长度小于等于2(之多包含2个不同元素),尝试更新最大长度tail = s[end]hashmap[tail] = hashmap.get(tail, 0) + 1if len(hashmap) <= 2:max_len = max(max_len, end - start + 1)# Step 4: # 根据题意,  题目的窗口长度可变: 这个时候一般涉及到窗口是否合法的问题# 这时要用一个while去不断移动窗口左指针, 从而剔除非法元素直到窗口再次合法# 哈希表长度大于2的时候 (说明存在至少3个重复元素),窗口不合法# 所以需要不断移动窗口左指针直到窗口再次合法, 同时提前更新需要维护的变量 (hashmap)while len(hashmap) > 2:head = s[start]hashmap[head] -= 1if hashmap[head] == 0:del hashmap[head]start += 1# Step 5: 返回答案 (最大长度)return max_len

三、无重复字符最长字串

LeetCode 第3题:https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 'abc',所以其长度为 3。
class Solution:def findMaxAverage(self, nums: List[int], k: int) -> float:# Step 1# 定义需要维护的变量# 本题求最大平均值 (其实就是求最大和),所以需要定义sum_, 同时定义一个max_avg (初始值为负无穷)sum_, max_avg = 0, -math.inf# Step 2: 定义窗口的首尾端 (start, end), 然后滑动窗口start = 0for end in range(len(nums)):# Step 3: 更新需要维护的变量 (sum_, max_avg), 不断把当前值积累到sum_上sum_ += nums[end]if end - start + 1 == k:max_avg = max(max_avg, sum_ / k)# Step 4# 根据题意可知窗口长度固定,所以用if# 窗口首指针前移一个单位保证窗口长度固定, 同时提前更新需要维护的变量 (sum_)if end >= k - 1:sum_ -= nums[start]start += 1# Step 5: 返回答案return max_avg

http://www.laogonggong.com/news/49807.html

相关文章:

  • 专业团队高清壁纸深圳优化排名公司
  • 天津 网站设计公司苏州seo关键词优化方法
  • dw做的网站怎样做成手机版的搜索引擎环境优化
  • 免费单页网站如何做网站设计
  • 长沙网站托管账号权重查询入口
  • 做网站要钱吗qq推广软件
  • 360安全网站怎么做号码认证seo培训公司
  • 南山网站设计方案网络服务商怎么咨询
  • 营销相关网站互联网域名注册查询
  • 旅游网站用dw怎么做搜索引擎的工作原理有哪些
  • 企业发展历程网站网站建设外包
  • 自适应网站开发教程百度竞价培训班
  • 湖北标书设计制作网站优化排名易下拉稳定
  • 网站的后台怎么做的网站优化资源
  • 国内设计网站收录网站的平台有哪些
  • 集团网站建设新闻网页设计友情链接怎么做
  • 网站建设流程六个步骤百度推广客户端手机版
  • 贵州网络推广公司怎么快速优化网站排名
  • 交友视频网站建设百色seo快速排名
  • 可以个人开店的电商平台seo排名优化北京
  • 广州网站建设50强名单数据营销
  • 网站功能说明怎么做策划
  • 学做网站记不住代码防控措施持续优化
  • 图书管理系统网站开发设计过程游戏推广员招聘
  • 网站对话窗口怎么做百度关键词搜索量统计
  • a公司备案做b公司网站杭州网站seo推广软件
  • 陕西网站建设品牌公司推荐优化营商环境个人心得体会
  • 如何做网站搜索排名浅谈一下网络营销的几个误区
  • 网店推广方案策划书seo技术培训海南
  • 电子商务网站建设如何网络营销的发展现状如何