hot100之滑动窗口
无重复字符的最长字串(003)
先看代码
class Solution {
public int lengthOfLongestSubstring(String s) {
int res = 0;
int lef = 0;
int rig = 0;
int[] memo = new int[128];
while (rig < s.length()){
char clef = s.charAt(lef);
char crig = s.charAt(rig);
if (memo[crig] > 0){
memo[clef]--;
lef++;
continue;
}
memo[crig]++;
res = Math.max(res, rig - lef + 1);
rig++;
}
return res;
}
}
- 分析
根据题目条件<无重复>
通过lef和rig 维护一个滑动窗口, memo来记录遇到字符的次数
rig一直向右扩张, 当出现数字重复, 移动lef 收缩窗口
- 感悟
寻找连续区间就让人很自然而然想到滑动窗口
每次窗口移动只用考虑(入窗口, 出窗口)的元素对窗口整体的影响
找到字符串中所有的字母异位词(438)
先看代码
class Solution {
public List<Integer> findAnagrams(String s, String p) {
List<Integer> res = new ArrayList<>();
int lef = 0;
int rig = 0;
int[] memo = new int[26];
for (char c : p.toCharArray()){
memo[c - 'a']++;
}
while(rig < s.length()){
int idx = s.charAt(rig) - 'a';
memo[idx]--;
while(memo[idx] < 0){
memo[s.charAt(lef) - 'a']++;
lef++;
}
if (rig - lef + 1 == p.length()) res.add(lef);
rig++;
}
return res;
}
}
- 分析
和无重复字符的最长字串基本一致, 扩张收缩窗口, 达到条件添加到res
- 感悟
暂无
hot100之滑动窗口的更多相关文章
- leetcode的Hot100系列--3. 无重复字符的最长子串--滑动窗口
可以先想下这两个问题: 1.怎样使用滑动窗口? 2.如何快速的解决字符查重问题? 滑动窗口 可以想象一下有两个指针,一个叫begin,一个叫now 这两个指针就指定了当前正在比较无重复的字符串,当再往 ...
- [LeetCode] Sliding Window Maximum 滑动窗口最大值
Given an array nums, there is a sliding window of size k which is moving from the very left of the a ...
- TCP/IP 协议中的滑动窗口
一个例子明白发送缓冲区.接受缓冲区.滑动窗口协议之间的关系. 在上面的几篇文章中简单介绍了上述几个概念在TCP网络编程中的关系,也对应了几个基本socket系统调用的几个行为,这里再列举一个例子,由于 ...
- Storm Windowing storm滑动窗口简介
Storm Windowing 简介 Storm可同时处理窗口内的所有tuple.窗口可以从时间或数量上来划分,由如下两个因素决定: 窗口的长度,可以是时间间隔或Tuple数量: 滑动间隔(slidi ...
- lintcode 滑动窗口的最大值(双端队列)
题目链接:http://www.lintcode.com/zh-cn/problem/sliding-window-maximum/# 滑动窗口的最大值 给出一个可能包含重复的整数数组,和一个大小为 ...
- TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释
一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...
- tcp协议头窗口,滑动窗口,流控制,拥塞控制关系
参考文章 TCP 的那些事儿(下) http://coolshell.cn/articles/11609.html tcp/ip详解--拥塞控制 & 慢启动 快恢复 拥塞避免 http://b ...
- CodeForces 701C They Are Everywhere (滑动窗口)
题目链接:http://codeforces.com/problemset/problem/701/C 题意:找到字符串中能包含所有元素的最短字符串长度. 利用“滑动窗口”解题 解题思路: 1. 遍历 ...
- TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议
前言:在学习tcp三次握手的过程之中,由于一直无法解释tcpdump命令抓的包中seq和ack的含义,就将tcp协议往深入的了解了一下,了解到了几个协议,做一个小结. 先来看看我的问题: 这是用tcp ...
- uva 1606 amphiphilic carbon molecules【把缩写写出来,有惊喜】(滑动窗口)——yhx
Shanghai Hypercomputers, the world's largest computer chip manufacturer, has invented a new classof ...
随机推荐
- 面试题-Storm框架
前言 Storm框架在实际项目中已经平稳运行快一年了,也很好的支撑了海量读写器的数据处理需求,不过和RabbitMQ一样,为了项目进度,实际工作中只能尽快的调研,关注一些关键点,其他的细节就只能放一放 ...
- Netty源码—9.性能优化和设计模式
大纲 1.Netty的两大性能优化工具 2.FastThreadLocal的实现之构造方法 3.FastThreadLocal的实现之get()方法 4.FastThreadLocal的实现之set( ...
- Java+Appium+Junit实现app自动化demo
1.新建maven工程和引入库 步骤参考https://www.cnblogs.com/wanyuan/p/16408758.html 2.编写代码 代码如下: import org.junit.Af ...
- 基于Zookeeper实现调度任务选主及心跳检测
在微服务架构中使用ZooKeeper实现分布式任务调度选主,并确保Follower节点能实时监控Master状态并及时触发重新选举,可以通过以下方案实现: 一.核心设计原理 1. ZooKeeper特 ...
- macOS终端修改DNS
以WiFi为例 networksetup -listallnetworkservices networksetup -setdnsservers Wi-Fi 8.8.8.8 networksetup ...
- 关于:win远程桌面连接命令怎么用
远程桌面连接命令怎么用? 事实上,远程桌面连接命令很简单,一个mstsc命令就搞定: 也可以直接使用第三方远程桌面管理软件,比如 IIS7远程桌面管理 这些,但是想要真正连接上远程桌面是有前提的,下面 ...
- 9.30SDFZCSP-J模考总结
我是傻逼我是傻逼我是傻逼我是傻逼\Huge我是傻逼我是傻逼\\我是傻逼我是傻逼\\我是傻逼我是傻逼我是傻逼我是傻逼 T3数组开小痛失50pts!!!!!! 分数 T1 T2 T3 T4 总分 100p ...
- TDesign腾讯高保真Axure RP中后台交互模板及元件组件库
TDesign腾讯Axure RP中后台交互模板部件及元件组件库素材基于腾讯TDesign素材库,进行二次创作,并非官网的免费静态版.具体内容,可以看右侧的预览按钮,确认内容. 在线演示及下载:htt ...
- Linux之删除命令
一.格式 只能删除文件夹 rmdir 文件名 删除文件 rm 是强大的删除命令,它可以 永久性地 删除文件系统中指定的文件或目录. 在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息.此命令 ...
- Vite 3 来了!新增功能 + 如何迁移
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...