news 2026/8/7 23:58:11

【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/8/7 19:10:57

3、Qt 界面开发:小部件与布局全解析

Qt 界面开发:小部件与布局全解析 1. 布局与小部件基础 所有图形用户界面(GUI)都是围绕小部件(Widgets)构建的,这些小部件通过布局(Layouts)进行排列。布局在 Qt 中非常重要,它能让对话框适应屏幕分辨率、字体大小和不同语言的变化。与之相对的静态布局,需要为每个小…

作者头像 李华
网站建设 2026/8/7 20:37:24

6、Qt 自定义小部件开发全解析

Qt 自定义小部件开发全解析 1. 小部件概述 在应用程序开发中,小部件(Widgets)指的是构成应用程序的各种可视化元素,如按钮、标题栏、文本框、复选框等。在使用小部件创建用户界面时,存在两种思路:一是坚持使用标准小部件,二是大胆创新创建自己的小部件,Qt 对这两种方…

作者头像 李华
网站建设 2026/8/7 22:12:01

Spring AI 最新实战系列(一)完成一个简单的AI项目

使用前介绍 我们以 Alibaba 的百炼平台作为Spring-AI的模型讲解&#xff0c;以最新稳定版作为架构。 spring-ai 的最新版本 1.1.2 &#xff1b;alibaba-spring-ai 的最新版本 1.1.0.0-RC1。 需要注意一点&#xff1a;最新版本的 Spring Boot 4.0.0 不能适配&#xff0c;需要降低…

作者头像 李华
网站建设 2026/8/7 8:03:45

LobeChat智谱ChatGLM接入全流程:Zhipu AI API对接

LobeChat 智谱 ChatGLM 接入全流程&#xff1a;Zhipu AI API 对接 在智能对话系统快速普及的今天&#xff0c;越来越多企业和开发者希望构建既具备专业能力又符合本地化需求的 AI 助手。然而&#xff0c;直接使用境外大模型服务常面临中文表达生硬、数据出境合规风险、网络延迟…

作者头像 李华
网站建设 2026/8/7 5:19:49

EmotiVoice能否实现语音情感渐变过渡?动态控制探索

EmotiVoice能否实现语音情感渐变过渡&#xff1f;动态控制探索 在虚拟偶像直播中&#xff0c;一个角色从担忧到释然的语气转变&#xff0c;往往只需一句话的时间&#xff1b;在互动游戏中&#xff0c;NPC因玩家行为瞬间由温和转为愤怒——这些细腻的情感流动&#xff0c;早已超…

作者头像 李华
网站建设 2026/8/7 13:33:03

终极微博备份指南:Speechless免费工具完整使用教程

终极微博备份指南&#xff1a;Speechless免费工具完整使用教程 【免费下载链接】Speechless 把新浪微博的内容&#xff0c;导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 在信息碎片化的今天&#xff0c;微博承…

作者头像 李华