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

门户网站的定义苏州建设造价信息网站

门户网站的定义,苏州建设造价信息网站,武昌做网站公司推荐,素马网站建设费用差距算法-滑动窗口-串联所有单词的子串 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/substring-with-concatenation-of-all-words/ 1.2 题目描述 2 滑动窗口Hash表 2.1 解题思路 构建一个大小为串联子串的总长的滑动窗口为每个words中的子串创建一个hash表, <子…

算法-滑动窗口-串联所有单词的子串

1 题目概述

1.1 题目出处

https://leetcode.cn/problems/substring-with-concatenation-of-all-words/

1.2 题目描述

在这里插入图片描述
在这里插入图片描述

2 滑动窗口+Hash表

2.1 解题思路

  1. 构建一个大小为串联子串的总长的滑动窗口
  2. 为每个words中的子串创建一个hash表, <子串值,子串出现次数>
  3. 记录每次开始位置,从左往右遍历字符串s,每次截取words[0]长度的子串,和2中hash表对比,如果没有或者使用次数超限,就表示该组合无法构成,退出该次检测;否则继续检测,直到构成的串联子串长度满足要求或者已检测长度超限。构建成功时,记录下起始序号
  4. 一轮检测完成后,窗口向右滑动1个长度,继续下一轮检测

2.2 代码

class Solution {public List<Integer> findSubstring(String s, String[] words) {List<Integer> resultList = new ArrayList<>();int windowSize = words[0].length();if (windowSize > s.length()) {return resultList;}int strLength = windowSize * words.length;if (strLength > s.length()){return resultList;}Map<String, Integer> wordMap = new HashMap<>();for (int i = 0; i < words.length; i++) {Integer subKeyTimes = wordMap.get(words[i]);if (null == subKeyTimes) {subKeyTimes = 0;} wordMap.put(words[i], subKeyTimes + 1);}for (int i = 0; i <= s.length() - strLength; i++) {int result = getStart(s, words, strLength, windowSize, i, wordMap);if (result != -1) {resultList.add(result);}}return resultList;}private int getStart(String s, String[] words, int strLength, int windowSize, int first, Map<String, Integer> wordMap) {int start = -1;int length = 0;Map<String, Integer> useMap = new HashMap();for (int i = first; i < s.length() && length < strLength && i < first + strLength; i += windowSize) {String sub = s.substring(i, i + windowSize);Integer subKeyTimes = wordMap.get(sub);if (null == subKeyTimes) {return -1;}Integer useTimes = useMap.get(sub);if (null == useTimes) {useTimes = 1; } else {useTimes += 1;}if (useTimes > subKeyTimes) {return -1;}useMap.put(sub, useTimes);length += windowSize;if (start == -1) {start = i;}}if (length == strLength) {return start;}return -1;}
}

2.3 时间复杂度

在这里插入图片描述
s.length=n,words.length=m ,时间复杂度O(n*m)

2.4 空间复杂度

O(m)

3 回溯法+交换字符串

3.1 解题思路

3.2 代码


3.3 时间复杂度

3.4 空间复杂度

O(N)

http://www.15wanjia.com/news/162465.html

相关文章:

  • 怎么查网站的备案信息青岛移动网站开发
  • 海口网站自助建站成都住建局官网首页
  • qt 网站开发电子商务网站系统规划
  • 网站如何运营维护WordPress批量发布插件
  • 网站外包费用怎么做分录全国婚孕检服务平台小程序
  • 辣条网站建设书搜索引擎网页
  • 用固定ip做访问网站服务器wordpress页面编辑教程视频
  • 百度不收录的网站合肥网站的建设
  • 订阅号可以建设微网站宿州企业网站建设
  • 方城微网站建设链接是什么意思
  • 石碣东莞网站建设wordpress菜单图标
  • 网站建设领导小组新余+网站建设
  • 网站制作百度wordpress使用方法
  • 海外注册域名的网站网络规划设计师考试科目
  • 濮阳网站建设通图片东莞朝阳企讯通科技
  • 公司做网站计入什么科目榆林做网站的公司
  • 郑州达云通网站建设公司怎么做电商网站 用户画像
  • 网络营销导向企业网站建设的一般原则包括用于网站建设的图片
  • 扒站wordpress主题购物网站制作教程
  • 做教师章节试题哪个网站专业装修的商铺
  • 发卡网站怎么做手机网站主页推荐
  • 做网站的软件m开头建网站流程的费用
  • 做个企业网站大概多少费用好大夫 网站开发
  • 网站关键词选择门业网站 模板
  • 手机访问跳转手机网站建设工程资料网站
  • 平邑县住房和城乡建设局网站网页设计图片上加文字
  • 如何做网站小编cpa建站教程
  • 网站用视频做背景音乐网站服务器知识
  • 网站建设哪家好知道域名与网站建设
  • 汇鑫小学网站建设西安seo按天收费