力扣76,最小覆盖字串(JavaScript)
通过遍历字符串 t,
整理t中出现的字符(key)和次数(value),保存在map中,然后遍历字符串s
var minWindow = function(s, t) {let r=l=0let len = s.length;let subStart = len + 1; //最符合的子串的起点let minLength = len + 1; //长度最小值let missType = 0;//t中存在的字符类型let map = new Map();//用来存储t中字符,以及缺失度//整理t出现的字符(key)和次数(value)for(let i=0;i<t.length;i++){let a=map.get(t[i]) ||0map.set(t[i],a+1)}missType=map.size //map.size是t的种类for(r; r < len; r++){ //遍历字符串sif(map.has(s[r])){ //统计当前字符出现的次数let value = map.get(s[r]) - 1; //出现过,则减1map.set(s[r], value); //保存更改过后的次数}if(map.get(s[r]) === 0){ //当满足出现次数,则完成一个种类missType--; //t的种类-1}while(missType === 0){ //找到满足要求的种类和出现次数//计算当前窗口长度let length = r-l + 1;//找到最小的长度minlength=Math.min(length,r-l+1)//记录当前左指针位置subStart = l; //左指针右移,处理左指针。if(map.has(s[l])){ //l对应的字符在t中出现过,指针右移,所以当前字符将移除窗口let value = map.get(s[l]) + 1;//则需求加1map.set(s[l], value);}if(map.get(s[l]) > 0){ //当前要被移除的字符value大于0,说明在当前窗口内出现次数不足missType++;}l++; //左指针右移一位}}return s.substr(subStart, minLength);
};
力扣76,最小覆盖字串(JavaScript)相关推荐
- 双指针算法之滑动窗口 | 力扣76.最小覆盖字串
本文讲解力扣76.最小覆盖字串问题 主要用到的是滑动窗口的思想 目录 76.最小覆盖字串 题目: 分析: 步骤描述: 复杂度分析: 结果 76.最小覆盖字串 题目: 给定字符串 S 以及字符串 T , ...
- LeetCode系列76—最小覆盖字串
题意 76. 最小覆盖子串 题解 方法一:滑动窗口 在滑动窗口类型的问题中都会有两个指针,一个用于「延伸」现有窗口的 r 指针,和一个用于「收缩」窗口的 l 指针.在任意时刻,只有一个指针运动,而另一 ...
- 力扣- - 最短回文串(KMP算法)
力扣- - 最短回文串(KMP算法) 文章目录 力扣- - 最短回文串(KMP算法) 一.题目描述 二.分析之KMP算法 1.暴力法 2.KMP算法 3.next数组求法1:暴力查找最长的前后缀 4. ...
- 美团/力扣(647)--回文字串
美团/力扣(647)–回文字串 文章目录 美团/力扣(647)--回文字串 一.题目描述 二.分析 方法一:中心扩散 代码一: 方法二:DP 代码二: 一.题目描述 力扣: 美团: 兄弟们!刷题的重要 ...
- leetcode必刷题(四)lee75 颜色分类、lee76 最小覆盖字串、lee78 子集、lee79 单词搜索、lee84 柱状图中最大的矩形、lee85 最大矩形、lee96 不同的二叉搜索树、
lee75 颜色分类 patition 三个指针 lee76 最小覆盖字串 滑动窗口 lee78 子集 无重复数字 回溯 lee79 单词搜索 回溯 lee84 柱状图中最大的矩形 单调栈 lee85 ...
- 最小覆盖字串—leetcode76
难度困难441 给你一个字符串 S.一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串. 示例: 输入: S = "ADOBECODEBANC", T = &q ...
- leetcode76:最小覆盖字串(滑动窗口)
一:题目 二:思路 思路拿别人的,感觉写的很nice!! 渣渣杰只能膜拜大佬的了 1.滑动窗口的思想: left 指针和 ring 指针,保证两个指针之间的字符串包含所需要的全部字符. 2在保证 1 ...
- 力扣55. 跳跃游戏(JavaScript)
//每个节点的最大覆盖范围是否能覆盖终点 var canJump = function(nums) {//只有一个,已经在终点if(nums.length==1){return true}//每个数的 ...
- 力扣376. 摆动序列(JavaScript)
var wiggleMaxLength = function(nums) {if(nums.length<=1){return nums.length}let cur=0 //当前差let pr ...
最新文章
- PostgreSQL 恢复模式错误日志增强 - 提供正在恢复的WAL(XLOG)文件位置
- 《深入理解Hadoop(原书第2版)》——2.3Hadoop系统的组成
- for循环和数组练习
- RIP GlassFish –感谢所有的鱼。
- 华为nova 7 se鸿蒙,荣耀v40和华为Nova7Pro哪个好-参数对比-更值得入手
- 读他:男人最怕听的十句话
- Linux Hugetlbfs内核源码简析-----(二)Hugetlbfs挂载
- 兼容性问题总结(转)
- oracle 的控制结构
- 面向对象和结构化程序设计的区别
- 主机通过网络访问虚拟机VirtualBox的WEB服务器
- 400多款微信公众号小游戏源码集合源码
- Anaconda 更新pip等库
- GeoTools操作shapefile
- 5e服务器显示steam名字,5e为什么不显示我csgo的名字(5ecsgo)
- android批量发送短信
- 解决teamviewer访问超时限制的问题
- 国信证券有限责任公司关于创设南航认沽权证的公告
- 父级fixed_CSS-应用position:fixed时是否可以保持父元素的宽度?
- 玩客云手动设置IP地址
热门文章
- 学习笔记(07):MySQL数据库运维与管理-02-用户权限授予演示
- android 视网膜黄斑检查 amsler,自测黄斑病变 | 一张图搞定
- javaweb功能模块如何合理设计_设计行业如何合理税筹
- 数据结构与算法的时间空间复杂度
- 基于JAVA+SpringMVC+Mybatis+MYSQL的网上相册展示系统
- 基于JAVA+SpringMVC+MYSQL的网上人才招聘系统
- python学习笔记8-列表、集合、字典推导式
- [vijos1982][NOIP2015]子串
- 如何自建appender扩展Log4j框架
- Python稳基修炼之计算机等级考试易错概念题3(含答案与解析)