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

破天网站定制长春网站制作方案定制

破天网站定制,长春网站制作方案定制,电商数据网站,wordpress主题+插件关于滑动窗口的概念,请自行到网上搜索相关资料,了解清楚再看本博客。 一、子组数最大平均数 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.jinmujx.cn/news/110830.html

相关文章:

  • 广西住房与城乡建设厅网站首页微信朋友圈推广文案
  • 手机网站按那个尺寸做线上营销推广方式都有哪些
  • 给公司做企业网站产品推广外包
  • 两学一做考试网站今日头条官网登录入口
  • 网站建设 成本网页制作基础教程
  • 有没有做那个的视频网站适合发软文的平台
  • 做班级网站的素材产品设计
  • 宠物网站项目nba在线直播免费观看直播
  • 网站建设的网络热搜榜排名今日第一
  • 做微信小程序和做网站网络公司推广方案
  • 哪家网站做的比较好百度一下浏览器下载安装
  • DW做网站的步骤seo关键词优化如何
  • php怎么建立网站最新新闻今天最新新闻
  • 字体怎么安装wordpressseo自学网app
  • 怎样做网站流量统计seo查询工具网站
  • 动漫做h在线观看网站策划网络营销活动
  • 用织梦做的网站怎么管理系统google play官网下载
  • 网站3级营销是怎么做的站长之家app
  • 自己做网站 需要哪些程序员培训机构排名前十
  • 东营网站建设哪家好百度知道登录入口
  • 手机百度网站证书过期网络营销的特点分别是
  • 手机网站建设广州百度做网站需要多少钱
  • 企业网站建设主要包括哪些内容山东seo优化
  • 代驾网站开发上海网络优化seo
  • 做系统软件的网站信阳seo
  • wordpress建站 东莞厦门人才网招聘
  • 上海怎样做网站中国免费网站服务器下载
  • 可拖动网站哪里做网络推广
  • 自己做网站卖视频山东济南seo整站优化费用
  • 网站前置审批文件在线网站seo优化