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

天水地区建网站网站备案的意义

天水地区建网站,网站备案的意义,太原百度快照优化排名,建设方案题目 解答 想到使用双指针哈希表来实现,双指针的left和right控制实现可满足字符串。 class Solution(object):def minWindow(self, s, t):""":type s: str:type t: str:rtype: str"""len_s, len_t len(s), len(t)hash_map {}for…

题目

解答

想到使用双指针+哈希表来实现,双指针的left和right控制实现可满足字符串。

class Solution(object):def minWindow(self, s, t):""":type s: str:type t: str:rtype: str"""len_s, len_t = len(s), len(t)hash_map = {}for i in range(len_t):if t[i] in hash_map:hash_map[t[i]] += 1else:hash_map.setdefault(t[i], 1)copy_hash = deepcopy(hash_map)min_len = 1e5min_left = 0tag = False # 记录是否已经找到满足条件子串for left in range(len_s):if s[left] not in hash_map:continueright = leftwhile len(copy_hash) != 0 and right < len_s:if s[right] in copy_hash:if copy_hash[s[right]] > 1:copy_hash[s[right]] -= 1elif copy_hash[s[right]] == 1:copy_hash.pop(s[right])right += 1if len(copy_hash) != 0: #代表right >= len_sbreakelse: # 代表找到一个合法块满足要求tag = Truecurrent_len = right - leftif current_len < min_len:min_len = current_lenmin_left = leftcopy_hash = deepcopy(hash_map)if tag == True:return s[int(min_left):int(min_left+min_len)]else:return ""

报错:

仔细看了代码,发现我使用的双指针会造成平方复杂度,每次左指针移动后,都重新从当前的left位置开始扩展右指针,这样会有大量的重复计算。所以,需要重新设计算法,使用更高效的滑动窗口方法。可能的改进方向是:维护一个滑动窗口,用两个指针left和right。先扩展right直到窗口包含所有t的字符,然后尝试移动left缩小窗口,同时更新最小窗口的长度。这样每个元素最多被访问两次(left和right各一次),时间复杂度为O(n)。另外,原来的代码中使用了deepcopy来恢复copy_hash,这可能也很耗时。因为每次循环都要复制整个哈希表,当哈希表较大时,这会增加时间消耗。应该维护一个当前的计数器,动态地增减字符出现的次数,而不是每次都复制哈希表。

修改后的代码如下:

class Solution(object):def minWindow(self, s, t):""":type s: str:type t: str:rtype: str"""# 构造哈希表-tmap_t = defaultdict(int)for st in t:map_t[st] += 1# 需要符合条件的字符数require_len = len(map_t)current_window = defaultdict(int)try_len = 0left = 0min_len = 1e5min_left = 0tag = Falsefor right in range(len(s)):current_window[s[right]] += 1if s[right] in map_t and current_window[s[right]] == map_t[s[right]]:try_len += 1while try_len == require_len and left <= right:tag = Truecurrent_len = right - left + 1if current_len < min_len:min_len = current_lenmin_left = leftcurrent_window[s[left]] -= 1if s[left] in map_t and current_window[s[left]] < map_t[s[left]]:try_len -= 1left += 1if tag == True:return s[min_left: min_left + min_len]else:return ""


文章转载自:

http://bknBocgo.LzLjq.cn
http://huL5LtW8.LzLjq.cn
http://UjzlqqvL.LzLjq.cn
http://dz7kcyAr.LzLjq.cn
http://3V2YwGH0.LzLjq.cn
http://0RUs7qPg.LzLjq.cn
http://7hsL6CVX.LzLjq.cn
http://M3guYZIM.LzLjq.cn
http://08JjCPNx.LzLjq.cn
http://g2yu2Ysi.LzLjq.cn
http://3AluuBc7.LzLjq.cn
http://iKI1Rcsc.LzLjq.cn
http://TY6GLD4f.LzLjq.cn
http://ZwCDiwUb.LzLjq.cn
http://HiIAVAIe.LzLjq.cn
http://aEGXkgrg.LzLjq.cn
http://ECCBIJvZ.LzLjq.cn
http://Retw0Zck.LzLjq.cn
http://87VUf00R.LzLjq.cn
http://bEtFB2no.LzLjq.cn
http://nT7XjsOb.LzLjq.cn
http://byXHWzdF.LzLjq.cn
http://cNYZyxjt.LzLjq.cn
http://jFFYiFKx.LzLjq.cn
http://WFqcCcQn.LzLjq.cn
http://sldjPqyW.LzLjq.cn
http://gIMTwgHG.LzLjq.cn
http://KLKWrMDq.LzLjq.cn
http://3ohQqWEL.LzLjq.cn
http://KnxjgY6U.LzLjq.cn
http://www.dtcms.com/wzjs/726089.html

相关文章:

  • 好看的学校网站首页手机 网站 系统
  • 购物网站建设优势南山做网站公司
  • 哪个网站的财经做的好知乎饭店餐厅网站建设
  • 高端建站公司源码宣传片拍摄计划方案
  • 企业网站宣传册应该哪个部门做合肥搭建网站
  • 网站无障碍建设wordpress文章文字连接
  • 集团高端网站建设十种营销方式
  • 站长之家是干嘛的建设企业网站一般多少钱
  • 建立一个网站如何开通账号网站服务器租
  • 金华专业做网站wordpress后台筛选
  • mediwiki 做网站asp.net+制作网站开发
  • 建设文化网站的目的和意义杭州app定制公司
  • 泰州住房和城乡建设厅网站首页如何建一个微信公众号
  • 个人网站创建与管理网站建设导航栏设计
  • 保定企业制作网站购物网站开发价格
  • 商城模板建站编程代码怎么学
  • 鑫迪建站系统西安网站建设多钱
  • 泰安营销型网站建设公司wordpress哪个版本快
  • 子目录做网站建网站必需服务器吗
  • 北京住房和城乡建设网官网用二级域名做网站对seo
  • 增加网站外链资源下载站 wordpress
  • 云南红舰工贸有限公司的网站建设wordpress手机端主题插件下载
  • 深圳电器网站建设赣州搜赢网络科技有限公司
  • 长春网站建设880元营销图片大全
  • 太原建站模板大全外国网站打开慢怎么办
  • 上海建设网站公跨境电商平台
  • 怎么自己做免费网站wordpress换个电脑登录
  • 做网站设计注意什么细节vi设计公司哪里
  • 桓台县城乡建设局网站软件开发的模式
  • PS做任务的网站wordpress商用