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

苏州建设工程检测协会网站python做网站毕业设计

苏州建设工程检测协会网站,python做网站毕业设计,怎么查一个网站的域名,什么网站做新产品代理哎- -最近本来就没时间写算法 这算法怎么还这么难。。。 10、和为 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1]…

哎- -最近本来就没时间写算法 这算法怎么还这么难。。。

10、和为 K 的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数

子数组是数组中元素的连续非空序列。

示例 1:

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

示例 2:

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

提示:

  • 1 <= nums.length <= 2 * 104

  • -1000 <= nums[i] <= 1000

  • -107 <= k <= 107

思路解答:

  1. 前缀和:计算数组的前缀和,并使用一个哈希表来记录之前出现过的前缀和及其出现次数。
  2. 遍历数组:遍历数组,对于每个元素,计算当前的前缀和,并查找之前是否出现过前缀和为 prefix_sum - k 的情况,如果有,则累加对应的子数组个数。
  3. 更新哈希表:在遍历过程中,更新哈希表,记录当前前缀和的出现次数。
def subarraySum(self, nums: list[int], k: int) -> int:count = 0prefix_sum = 0# 初始化前缀和为0的个数为1prefix_sum_count = {0: 1}for num in nums:prefix_sum += num# 更新count,加上之前出现的前缀和为prefix_sum - k的个数count += prefix_sum_count.get(prefix_sum - k, 0)# 更新当前前缀和的个数prefix_sum_count[prefix_sum] = prefix_sum_count.get(prefix_sum, 0) + 1return count

11、滑动窗口最大值

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

返回滑动窗口最大值。

示例 1:

输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
解释:
滑动窗口的位置                最大值
---------------               -----
[1  3  -1] -3  5  3  6  7       31 [3  -1  -3] 5  3  6  7       31  3 [-1  -3  5] 3  6  7       51  3  -1 [-3  5  3] 6  7       51  3  -1  -3 [5  3  6] 7       61  3  -1  -3  5 [3  6  7]      7

示例 2:

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

提示:

  • 1 <= nums.length <= 105

  • -104 <= nums[i] <= 104

  • 1 <= k <= nums.length

思路解答:

  1. 使用双端队列:维护一个双端队列,队列中存储的是数组元素的索引,且队列中的索引对应的元素值是递减的。

  2. 滑动窗口处理:在遍历数组的过程中,对于每个元素,首先判断队列中的第一个索引是否在当前滑动窗口内,如果不在,则将其移除。然后将当前元素与队列尾部的元素比较,如果比队尾元素大,则将队尾元素移除,直到队列为空或者当前元素小于等于队尾元素。然后将当前元素的索引加入队列。

  3. 获取最大值:每次滑动窗口移动时,队列的第一个元素对应的就是当前滑动窗口的最大值。

def maxSlidingWindow(self, nums: list[int], k: int) -> list[int]:if not nums:return []result = []#创建双端队列window = collections.deque()for i, num in enumerate(nums):# 移除不在窗口内的元素if window and window[0] < i - k + 1:window.popleft()# 移除比当前元素小的元素while window and nums[window[-1]] < num:window.pop()window.append(i)# 当窗口大小达到k时,记录当前窗口的最大值if i >= k - 1:result.append(nums[window[0]])return result

12、最小覆盖子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""

注意:

  • 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
  • 如果 s 中存在这样的子串,我们保证它是唯一的答案。

示例 1:

输入:s = "ADOBECODEBANC", t = "ABC"
输出:"BANC"
解释:最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。

示例 2:

输入:s = "a", t = "a"
输出:"a"
解释:整个字符串 s 是最小覆盖子串。

示例 3:

输入: s = "a", t = "aa"
输出: ""
解释: t 中两个字符 'a' 均应包含在 s 的子串中,
因此没有符合条件的子字符串,返回空字符串。

提示:

  • m == s.length
  • n == t.length
  • 1 <= m, n <= 105
  • st 由英文字母组成

思路解答:

  1. 滑动窗口法:使用滑动窗口来解决这个问题。我们维护两个指针,一个指向窗口的起始位置,一个指向窗口的结束位置。移动右指针扩大窗口,直到窗口包含了所有 t 中的字符。

  2. 满足条件时收缩窗口:当窗口包含了所有 t 中的字符后,我们尝试缩小窗口,移动左指针,并在移动过程中更新最小子串的长度和起始位置。

  3. 维护字符频次:使用字典来维护 t 中字符的频次,以及窗口中字符的频次,确保窗口中包含了 t 中所有字符。

def minWindow(self, s: str, t: str) -> str:if not s or not t:return ""t_freq = collections.Counter(t)required_chars = len(t_freq)left = 0right = 0formed = 0window_freq = {}ans = float('inf'), None, Nonewhile right < len(s):char = s[right]window_freq[char] = window_freq.get(char, 0) + 1if char in t_freq and window_freq[char] == t_freq[char]:formed += 1while formed == required_chars and left <= right:if right - left + 1 < ans[0]:ans = (right - left + 1, left, right)char = s[left]window_freq[char] -= 1if char in t_freq and window_freq[char] < t_freq[char]:formed -= 1left += 1right += 1return "" if ans[0] == float('inf') else s[ans[1]:ans[2] + 1]

文章转载自:

http://pNb2o5G4.qmtzq.cn
http://9tRlymvR.qmtzq.cn
http://I7fJSWeC.qmtzq.cn
http://thKru46C.qmtzq.cn
http://zibYw1mn.qmtzq.cn
http://YYSSprgO.qmtzq.cn
http://YEK6UAS1.qmtzq.cn
http://YqcEwwkI.qmtzq.cn
http://oV6NlzWY.qmtzq.cn
http://t9uRLfxm.qmtzq.cn
http://111mohFi.qmtzq.cn
http://76jLuYZI.qmtzq.cn
http://u6RXIowL.qmtzq.cn
http://I3Jraeqd.qmtzq.cn
http://S3lcJf3T.qmtzq.cn
http://GraCFEoP.qmtzq.cn
http://i4zmzv2n.qmtzq.cn
http://G7OFFl7O.qmtzq.cn
http://95AfcAQU.qmtzq.cn
http://vwTmMSR6.qmtzq.cn
http://GyDRGhrF.qmtzq.cn
http://SBjwKGgq.qmtzq.cn
http://sfIthvDO.qmtzq.cn
http://4tKi7RVA.qmtzq.cn
http://J7kDj7Fh.qmtzq.cn
http://qU73mLUa.qmtzq.cn
http://vCJEXUo6.qmtzq.cn
http://s8Wn3iQ7.qmtzq.cn
http://EdLHFkRV.qmtzq.cn
http://TYcJnmVM.qmtzq.cn
http://www.dtcms.com/wzjs/657340.html

相关文章:

  • 网站推广工具大全htmi如何做网站
  • 自己做的网站怎么给域名备案看视频的软件哪个最好免费
  • 中国建设银行网站解绑手机网页访问自动跳转中
  • 网站模板 jsp安居客房产官方网站
  • 网站被k的表现郑州建网站十大
  • 网站建设是属于软件吗外贸网站建设收益
  • 网站被黑能查到是谁做的吗哈尔滨专业官网建站企业
  • 网站规划与建设心得体会动物做logo的网站
  • 龙华网站 建设深圳信科兰州新晨诚网络科技有限公司
  • 局机关门户网站建设自查报告范文免费人脉推广软件
  • 一般做网站用什么语言建筑培训机构排名前十
  • 东莞网站设计智能 乐云践新wordpress制作小工具
  • dede网站首页加悬浮广告邯郸技术服务类
  • 做系统用哪个网站好网站建设博客
  • 做企业平台网站成本ae做动画教程网站
  • 专业微网站建设罗湖在线
  • 松江营销型网站建设wordpress 4.6下载
  • 学校网站首页网站建设:博采网络
  • 长安网站制作wordpress浮动播放器
  • 大淘客做网站wordpress网站如何搬家
  • 做网站租服务器哪个商城网站建设好
  • 设计和建设企业网站心得和体会wordpress主题ftp
  • 网站一条龙服务网站开发软硬件条件
  • 做美食网站赚钱吗苏州万户网络科技有限公司
  • 产品做网站上海网站建设上海网站制作
  • wordpress返利插件网站排名云优化工具
  • 养老院网站建设最好的ppt模板网站
  • 网站样式侵权微信定制开发 网站开发
  • 杭州市萧山区建设局网站南宁seo咨询
  • 海南网站设计新媒体运营