力扣hot100 找到字符串中所有字母异位词 滑动窗口 双指针 一题双解
Problem: 438. 找到字符串中所有字母异位词
文章目录
- 思路
- 滑动窗口 + 数组
- 滑动窗口 + 双指针
思路
👩🏫 参考题解
滑动窗口 + 数组

⏰ 时间复杂度: O ( n ) O(n) O(n)
🌎 空间复杂度: O ( 1 ) O(1) O(1)
class Solution {
// 滑动窗口 + 数组public List<Integer> findAnagrams(String s, String p){int n = s.length();int m = p.length();List<Integer> ans = new ArrayList<>();if (n < m)return ans;int[] pp = new int[26];int[] ss = new int[26];for (int i = 0; i < m; i++){pp[p.charAt(i) - 'a']++;ss[s.charAt(i) - 'a']++;}if (Arrays.equals(pp, ss))ans.add(0);for (int i = m; i < n; i++){ss[s.charAt(i - m) - 'a']--;ss[s.charAt(i) - 'a']++;if (Arrays.equals(ss, pp))ans.add(i - m + 1);}return ans;}
}
滑动窗口 + 双指针

⏰ 时间复杂度: O ( n ) O(n) O(n)
🌎 空间复杂度: O ( 1 ) O(1) O(1)
class Solution {public List<Integer> findAnagrams(String s, String p){int n = s.length();int m = p.length();List<Integer> ans = new ArrayList<>();if (n < m)return ans;int[] pp = new int[26];// 目标串的字符数int[] win = new int[26];// 当前窗口拥有的字符数for (int i = 0; i < m; i++)pp[p.charAt(i) - 'a']++;int l = 0;for (int r = 0; r < n; r++){int rightIdx = s.charAt(r) - 'a';win[rightIdx]++;// 加入r字符导致 当前窗口字符个数超出范围,只能移除左边的字符while (win[rightIdx] > pp[rightIdx]){int leftIdx = s.charAt(l) - 'a';win[leftIdx]--;l++;}
// 注意:走到这,只有 当前窗口内字符数不够 这种情况,上边的while循环保证了当前的窗口的每个字符肯定 <= 目标数if (r - l + 1 == m)// 只要当前窗口大小 == 目标串长度ans.add(l);}return ans;}
}
相关文章:
力扣hot100 找到字符串中所有字母异位词 滑动窗口 双指针 一题双解
Problem: 438. 找到字符串中所有字母异位词 文章目录 思路滑动窗口 数组滑动窗口 双指针 思路 👩🏫 参考题解 滑动窗口 数组 ⏰ 时间复杂度: O ( n ) O(n) O(n) 🌎 空间复杂度: O ( 1 ) O(1) O(1) class Solution { // 滑动窗口 …...
PG DBA培训21:PostgreSQL性能优化之基准测试
本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL Performance Benchmarking,学完本课程可以掌握PostgreSQL性能基准测试基础知识,基准测试介绍,基准测试相关指标,TPCC基准测试基础,PostgreSQL测试工具介绍,PostgreSQL性能基准测…...
使用excel从1-2048中随机选择1个整数,并展示与其对应的单词
在Excel中,你可以使用以下指令来从1到2048之间随机选择一个整数,并展示其对应的单词: 1. 首先,在一个空白单元格中输入以下公式: INDEX(单词列表范围, RANDBETWEEN(1, 2048)) 这里的"单词列表范围"是一个包…...
c++可调用对象、function类模板与std::bind
函数调用与函数调用运算符 先写一个简单的函数,如下: /*函数的定义*/ int func(int i) {cout<<"这是一个函数\t"<<i<<endl; }void test() {func(1);//函数的调用 } 通过这个普通的函数可以看到,调用一个函数很…...
【高危】Apache Solr 环境变量信息泄漏漏洞
漏洞描述 Apache Solr 是一款开源的搜索引擎。 在 Apache Solr 受影响版本中,由于 Solr Metrics API 默认输出所有未单独配置保护策略的环境变量。在默认无认证或具有 metrics-read 权限的情况下,攻击者可以通过向 /solr/admin/metrics 端点发送恶意请…...
Python中的卷积神经网络(CNN)入门
卷积神经网络(Convolutional Neural Networks, CNN)是一类特别适用于处理图像数据的深度学习模型。在Python中,我们可以使用流行的深度学习库TensorFlow和Keras来创建和训练一个CNN模型。在本文中,我们将介绍如何使用Keras创建一个…...
vulnhub靶机HotelWW
下载地址:https://download.vulnhub.com/worstwesternhotel/HotelWW.ova 主机发现 目标142 端口扫描 服务版本扫描 漏洞扫描 看一下web 好好好这么玩改host 啥也没有先做个目录爆破 扫描太慢我就没看了看几个重点的txt(robot,config,readme&…...
ArcGIS Pro 标注牵引线问题
ArcGIS Pro 标注 模仿CAD坐标牵引线问题 右键需要标注的要素,进入标注属性。 选择背景样式 在这里有可以选择的牵引线样式 选择这一个,可以根据调整间距来进行模仿CAD标注样式。 此图为cad样式 此为调整后gis样式 此处可以调整牵引线的样式符号 …...
Java8的Stream最佳实践
从这一篇文章开始,我们会由浅入深,全面的学习stream API的最佳实践(结合我的使用经验),本想一篇写完,但写着写着发现需要写的内容太多了,所以分成一个系列慢慢来说。给大家分享我的经验的同时&a…...
Spark SQL函数定义
目录 窗口函数 SQL函数分类 Spark原生自定义UDF函数 Pandas的UDF函数 Apache Arrow框架基本介绍 基于Arrow完成Pandas DataFrame和Spark DataFrame互转 基于Pandas完成UDF函数 自定义UDF函数 自定义UDAF函数 窗口函数 分析函数 over(partition by xxx order by xxx [as…...
触摸屏监控双速电动机-PLC I/O电路设计
PLC的输入接线电路图 PLC的输入接线电路如图1-21所示。24VDC电源选用0.7mm2的棕色和蓝色软铜导线,弱电信号线用0.5~0.7mm2的黑色或者白色软铜导线。 PLC输入接线图 PLC的输出接线电路图 PLC的输出接线电路如图1-22所示。AC220V接触器型号为CJX2-12,线…...
idea中使用git提交代码报 Nothing To commit No changes detected
问题描述 在idea中右键,开始将变更的代码进行提交的时候,【Commit Directory】点击提交的时候 报 Nothing To commit No changes detected解决方案 在这里点击Test 看看是不是能下面显示git版本,不行的话 会显示一个 fix的字样,行…...
基于长短期神经网络的回归分析,基于LSTM的回归预测
目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的回归分析 MATALB代码:基于长短期神经网络的回归分析,基于LSTM的回归预测资源-CSDN文库 https://download.csdn.net/download/abc991835105/88184633 效果图 结果分析 展望 参考论文 背影 LSTM神经…...
mac查看maven版本报错:The JAVA_HOME environment variable is not defined correctly
终端输入mvn -version报错: The JAVA_HOME environment variable is not defined correctly, this environment variable is needed to run this program. Java环境变量的问题,打开bash_profile查看 open ~/.bash_profile export JAVA_8_HOME/Library/Java/JavaVirtualMachine…...
蓝桥杯省赛无忧 编程9
#include<bits/stdc.h> using namespace std; int main() {int n,k,ans0;cin>>n>>k;while(n--){int a;cin>>a;ansa&1;}if(ans&1) cout<<"Alice"<<\n;else cout<<"Bob"; return 0; }这个游戏是基于数…...
Spring data都包含哪些内容
Spring Data是一个涵盖了对多种数据库访问技术的支持的项目集合,旨在提供一致的数据访问方式,简化数据访问层(DAO层)的开发工作。Spring Data项目为许多不同类型的数据存储提供了易于使用的接口和模式。主要包括以下几个方面&…...
unity 利用Graphics.Blit来制作图片效果
c# 的代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class GraphicsBlitTest : MonoBehaviour {public Texture2D source;//原纹理public Material material;//效果材质public RawImage rawImage;// Sta…...
Linux ---- 小玩具
目录 一、安装: 1、佛祖保佑,永不宕机,永无bug 2、小火车 3、艺术字和其它 天气预报 艺术字 4、会说话的小牦牛 5、其他趣味图片 我爱你 腻害 英雄联盟 帅 忍 龙 你是猪 福 好运连连 欢迎 加油 想你 忘不了你 我错了 你…...
练习题 有奖问答
题目 问题描述 小蓝正在参与一个现场问答的节目。活动中一共有 3030 道题目, 每题只有答对和答错两种情况, 每答对一题得 10 分,答错一题分数归零。 小蓝可以在任意时刻结束答题并获得目前分数对应的奖项,之后不能再答任何题目。最高奖项需要 100 分,…...
php 文件操作
目录 1.file_xxx 2.fopen 1.file_xxx 文件读写的内容都是字符串数据格式 readfile(); //读取文件内容,并返回文件的长度 file_get_contents(文件路径); //读取文件。支持本地文件和远程文件url file_put_contents(文件路径, 内容); //写入数据,保存…...
OBS智能镜头:5分钟实现直播自动对焦,让镜头始终跟随你
OBS智能镜头:5分钟实现直播自动对焦,让镜头始终跟随你 【免费下载链接】obs-face-tracker Face tracking plugin for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-face-tracker 你是否在直播时经常需要手动调整摄像头角度&#…...
VSLAM与VIO技术解析:从3D建图到重定位的工程实践
1. 项目概述:从传感器融合到环境认知的跨越在机器人、自动驾驶和增强现实这些前沿领域,让机器“看见”并“理解”它所处的三维世界,是赋予其自主行动能力的基石。这背后,视觉SLAM(Simultaneous Localization and Mappi…...
Beyond Compare 5密钥生成解决方案:告别评估模式限制的专业工具
Beyond Compare 5密钥生成解决方案:告别评估模式限制的专业工具 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 当你的文件对比工具Beyond Compare 5弹出"评估模式错误"提…...
【例题2】The XOR Largest Pair(信息学奥赛一本通- P1472)
【题目描述】在给定的 N 个整数 A1,A2,…,AN 中选出两个进行异或运算,得到的结果最大是多少?【输入】第一行一个整数 N。第二行 N 个整数 Ai 。【输出】一个整数表示答案。【输入样例】5 2 9 5 7 0【输出样例】14【提示】对于 100% 的数据࿰…...
视觉伺服visual servoing
模拟视觉反馈(图像 X/Y 偏差)自动控制机械臂末端向目标移动闭环控制,偏差越小速度越低无硬件相机也能运行(内置虚拟视觉信号)视觉伺服 Visual Servoing 示例代码cpp运行/********************************************…...
Nginx、Tengine、OpenRestry的http和tcp后端健康检查【20260520-004篇】
文章目录 企业级生产环境 Nginx/Tengine/OpenResty 健康检查 完整部署+配置+压测+故障演练+验收交付文档 一、环境基线与生产规范 1. 版本选型(生产强制) 2. 生产统一参数规范(全局通用) 3. 生产前置约束 二、三大组件 生产完整配置 2.1 开源Nginx 生产配置(仅被动检查,无…...
小红书无水印下载全攻略:如何用XHS-Downloader高效保存优质内容
小红书无水印下载全攻略:如何用XHS-Downloader高效保存优质内容 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户…...
告别Python环境混乱!用virtualenv为每个项目创建独立开发空间(附常用命令速查表)
告别Python环境混乱!用virtualenv为每个项目创建独立开发空间(附常用命令速查表) 你是否经历过这样的场景:刚在项目A中完美运行的代码,迁移到项目B就报错;或是系统Python被意外升级导致所有项目崩溃&#x…...
puma-dev与Webpack Dev Server集成:解决混合内容错误的终极方案
puma-dev与Webpack Dev Server集成:解决混合内容错误的终极方案 【免费下载链接】puma-dev A tool to manage rack apps in development with puma 项目地址: https://gitcode.com/gh_mirrors/pu/puma-dev 在现代Web开发中,puma-dev作为一款快速、…...
STR71X中断服务程序定位与Keil MDK配置详解
1. STR71X中断服务程序定位问题解析在基于ARM7架构的STR71X系列微控制器开发过程中,中断服务程序(ISR)的定位是一个关键但容易被忽视的技术细节。STR71X采用增强型中断控制器(EIC),其硬件设计要求所有中断服务例程必须位于同一个64KB内存段内。这个限制源…...

