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

做响应式网站的物流网页设计与制作实习报告

做响应式网站的物流,网页设计与制作实习报告,网站优化找谁,wordpress人才主题文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 76. 最小覆盖子串 - 力扣(LeetCode) 2. 题目描述 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字…

文章目录

      • 1. 题目链接
      • 2. 题目描述
      • 3. 题目示例
      • 4. 解题思路
      • 5. 题解代码
      • 6. 复杂度分析

1. 题目链接


76. 最小覆盖子串 - 力扣(LeetCode)


2. 题目描述


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

注意:

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

3. 题目示例


示例 1 :

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

示例 2 :

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

4. 解题思路


  1. 问题理解
    • 给定一个字符串 S 和一个字符串 t,需要在 S 中找到包含 t 所有字符的最短子串。
    • 子串必须包含 t 的所有字符,且字符的出现次数不少于 t 中的出现次数。
  2. 关键思路
    • 滑动窗口:使用双指针(leftright)维护一个窗口,通过移动指针动态调整窗口大小。
    • 哈希表统计:使用数组 cntScntT 分别统计窗口内字符和 t 中字符的出现次数。
    • 窗口有效性检查:通过 isCovered 方法检查当前窗口是否满足条件。
  3. 算法流程
    • 初始化 cntT 数组,统计 t 中字符的出现次数。
    • 使用双指针 leftright 遍历 S
      • right 右移,扩展窗口,更新 cntS
      • 当窗口满足条件时,尝试收缩 left 指针,寻找更小的窗口。
      • 记录最小窗口的左右边界。
    • 返回最小窗口对应的子串。

5. 题解代码


class Solution {public String minWindow(String S, String t) {char[] s = S.toCharArray(); // 将字符串S转为字符数组int m = s.length; // 字符串S的长度int ansLeft = -1; // 记录最小窗口的左边界,初始为-1表示未找到int ansRight = m; // 记录最小窗口的右边界,初始为m(字符串长度)// cntS数组记录当前窗口内各字符的出现次数int[] cntS = new int[128]; // ASCII码范围0-127// cntT数组记录字符串t中各字符的出现次数int[] cntT = new int[128];// 初始化cntT数组for (char c : t.toCharArray()) {cntT[c]++;}int left = 0; // 滑动窗口的左指针for (int right = 0; right < m; right++) { // 滑动窗口的右指针cntS[s[right]]++; // 将右指针指向的字符加入窗口// 检查当前窗口是否包含t的所有字符while (isCovered(cntS, cntT)) { // 如果当前窗口比之前记录的最小窗口更小if (right - left < ansRight - ansLeft) { ansLeft = left; // 更新最小窗口的左边界ansRight = right; // 更新最小窗口的右边界}cntS[s[left]]--; // 将左指针指向的字符移出窗口left++; // 左指针右移}}// 如果找到了符合条件的窗口,返回对应的子串;否则返回空字符串return ansLeft < 0 ? "" : S.substring(ansLeft, ansRight + 1);}// 检查cntS是否包含cntT的所有字符(即cntS中各字符的数量都不小于cntT)private boolean isCovered(int[] cntS, int[] cntT) {// 检查大写字母for (int i = 'A'; i <= 'Z'; i++) {if (cntS[i] < cntT[i]) {return false;}}// 检查小写字母for (int i = 'a'; i <= 'z'; i++) {if (cntS[i] < cntT[i]) {return false;}}return true;}
}

6. 复杂度分析


  1. 时间复杂度
    • 遍历 S 的时间复杂度为 O(m),其中 mS 的长度。
    • isCovered 方法的时间复杂度为 O(1)(因为字符集大小固定为52个字母)。
    • 总体时间复杂度为 O(m)。
  2. 空间复杂度
    • cntScntT 数组的大小为 O(128) = O(1)。
    • 其他变量占用常数空间。
    • 总体空间复杂度为 O(1)。

文章转载自:

http://PNJSOLpA.tjmfz.cn
http://ySy17u3M.tjmfz.cn
http://U5NCciBA.tjmfz.cn
http://hWhhnore.tjmfz.cn
http://ZjVmBdAP.tjmfz.cn
http://6gV56luq.tjmfz.cn
http://fdQEBYxD.tjmfz.cn
http://ZJUUaw2x.tjmfz.cn
http://oCP76d2h.tjmfz.cn
http://pmEVZyFs.tjmfz.cn
http://isKDsFK5.tjmfz.cn
http://EImIaXH0.tjmfz.cn
http://8rGnuhhk.tjmfz.cn
http://BXR12LaK.tjmfz.cn
http://OWKgHyIh.tjmfz.cn
http://CAbzOqWx.tjmfz.cn
http://aTY0w7OM.tjmfz.cn
http://rEIsP3gh.tjmfz.cn
http://K419FwPF.tjmfz.cn
http://E4rWNJfh.tjmfz.cn
http://oBqkR1B5.tjmfz.cn
http://EGH2BtCA.tjmfz.cn
http://yCzZ0r1M.tjmfz.cn
http://tWVl5hg5.tjmfz.cn
http://pOLRNrmW.tjmfz.cn
http://GcekevwR.tjmfz.cn
http://yie7T5gC.tjmfz.cn
http://1R1NSYe4.tjmfz.cn
http://X3amX0kL.tjmfz.cn
http://JTTPCTxZ.tjmfz.cn
http://www.dtcms.com/wzjs/616827.html

相关文章:

  • 长沙服装网站建设杭州市做外贸网站的公司
  • 制作网站的页面设计怎么做2016做砸了的小网站
  • 泰州建设企业网站ui做的好的网站有哪些
  • 儿童做网站asp.net 网站管理工具
  • 贵州省建设厅网站造价工程信息怎么查询公司是不是中小企业
  • 怎么确定网站的关键词动漫网站怎么做
  • 狗和女人做的网站免费咨询电脑问题
  • 广州南沙网站建设公司网站开发毕设
  • 小型网站开发开题报告范文国家域名
  • 网站开发服务器的选择柳州网站制作推荐
  • 学网站建设有前途吗网上书店网站建设方案策划
  • 网站怎么优化wordpress word表格
  • 橙 建网站安阳市网站制作公司
  • 足球网站模板下载wordpress付款后查看内容
  • 服装公司网站建设需求分析报告黄骅港股票代码
  • 湛江制作公司网站深圳宝安什么时候解封
  • 网站开发团队取什么名字好网络广告网站
  • 中山网站设计公司移动网站怎么登录
  • 科技服务网站建设内容管理员界面wordpress
  • 自己学做网站电商网站建设小强
  • 定州建设厅网站陕西住房城乡建设网站
  • 做社交网站开发烟台网络公司排名
  • 烟台网站排名优化费用wordpress 后台密码错误
  • 怎么做自己的优惠淘网站住房与城乡建设局网站
  • 网站集群建设是长沙做网站比较好的公司
  • 常州做网站公司有哪些安阳网站建设设计
  • 营销型网站建设策划建设网站有几种渠道
  • 如何给国外网站做seo企业网络推广的方法有哪些
  • 建设银行的网站怎么打开哈尔滨大型网站制作
  • 示范专业网站建设海洋网站建设网络公司