news 2026/4/16 16:19:33

【Leetcode】3008. Find Beautiful Indices in the Given Array II

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Leetcode】3008. Find Beautiful Indices in the Given Array II

题目地址:

https://leetcode.com/problems/find-beautiful-indices-in-the-given-array-ii/description/

给定三个字符串s ssa aab bb,还有一个正整数k kk,求所有的i ii满足s [ i : ] s[i:]s[i:]a aa为前缀,并且s ss含有子串b bb,且b bb开始的位置(之一)和i ii的距离小于等于k kk。返回所有满足条件的i ii

先用KMP求出a aab bbs ss中出现的所有位置的下标,这样得出两个下标数组v a v_avav b v_bvb,并且它们都是单调增的。遍历v a v_ava,对于每个i ii,求出j jj使得j jj是满足v b [ j ] ≥ i − k v_b[j]\ge i-kvb[j]ik的最小的数,然后判断v b [ j ] ≤ i + k v_b[j]\le i+kvb[j]i+k是否成立。如果成立,则将i ii加入答案。注意j jj是不需要回退的。代码如下:

classSolution{public:vector<int>beautifulIndices(string s,string a,string b,intk){s=" "+s;a=" "+a;b=" "+b;autof=[](auto&s,auto&p){intm=p.size()-1,n=s.size()-1;vector<int>ne(m+1);for(inti=2,j=0;i<=m;i++){while(j&&p[i]!=p[j+1])j=ne[j];if(p[i]==p[j+1])j++;ne[i]=j;}vector<int>res;for(inti=1,j=0;i<=n;i++){while(j&&s[i]!=p[j+1])j=ne[j];if(s[i]==p[j+1])j++;if(j==m){res.push_back(i-j);j=ne[j];}}returnres;};autova=f(s,a),vb=f(s,b);intj=0;vector<int>res;for(inti:va){intl=i-k,r=i+k;while(j<vb.size()&&vb[j]<l)j++;if(j<vb.size()&&vb[j]<=r)res.push_back(i);}returnres;}};

时空复杂度O ( l s + l a + l b ) O(l_s+l_a+l_b)O(ls+la+lb)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 6:02:29

5、Qt模型视图框架:构建灵活强大的软件界面

Qt模型视图框架:构建灵活强大的软件界面 1. 模型 - 视图框架概述 模型和视图是常见的设计模式,通过将数据分离到模型中,并通过视图将模型呈现给用户,能够创建出健壮且可复用的设计。在软件应用开发中,常见的数据结构如列表、表格和树,都可以用模型来描述: - 列表 :…

作者头像 李华
网站建设 2026/4/16 6:02:02

第一部分:类和对象(中)— 取地址运算符重载

好的&#xff0c;我来为你总结“类和对象&#xff08;中&#xff09;”关于取地址运算符重载&#xff0c;以及“类和对象&#xff08;下&#xff09;”的重点内容。我会尽量用通俗易懂的方式讲解&#xff0c;帮你打好基础。 第一部分&#xff1a;类和对象&#xff08;中&#x…

作者头像 李华
网站建设 2026/4/16 1:54:06

二叉搜索树与双向链表

目录 基本要求 节点结构 核心算法&#xff1a;中序遍历 指针修改 算法思想 递归实现 非递归实现 复杂度分析 时间复杂度&#xff1a; 空间复杂度&#xff1a; 基本要求 这是一个经典的算法问题&#xff1a;将二叉搜索树&#xff08;BST&#xff09;转换成一个排序的双…

作者头像 李华
网站建设 2026/4/16 7:16:54

抖音视频批量下载器:从技术小白到下载高手的完整指南

"哎呀&#xff0c;昨天那个直播太精彩了&#xff0c;想保存下来反复看&#xff0c;可是抖音居然不支持下载&#xff01;" 这是多少抖音用户的共同困扰&#xff1f;别担心&#xff0c;今天我要向你推荐一款开源神器——抖音下载器&#xff0c;它能帮你把心爱的视频、直…

作者头像 李华