Kimi    LeetCode 3485. 删除元素后 K 个字符串的最长公共前缀 C++实现
以下是 LeetCode 3485 删除元素后 K 个字符串的最长公共前缀 的 C 实现。核心思路排序法参考 灵神灵茶山艾府的做法1. 排序后连续 k 个字符串的 LCP 最优将 words 按字典序排序任意 k 个字符串的最长公共前缀最大值一定来自某个连续的 k 个字符串子数组。且该子数组的 LCP 等于首尾两个字符串的 LCP。2. 预处理全局最大/次大 LCP遍历所有长度为 k 的窗口计算每个窗口首尾的 LCP记录- mx最大 LCP 值- mx2次大 LCP 值- mx_i最大 LCP 对应的窗口起始下标在排序后的数组中3. 分类讨论- 若移除的字符串不在 mx 窗口内 → 答案为 mx- 若移除的字符串在 mx 窗口内 → 该窗口被破坏答案为 mx24. 边界若 k n移除一个后剩余不足 k 个全填 0。cppclass Solution {public:vectorint longestCommonPrefix(vectorstring words, int k) {int n words.size();// 边界移除一个后只剩 n-1 个若 n-1 k 则全为 0if (k n) {return vectorint(n, 0);}// 1. 按字符串字典序对下标排序vectorint idx(n);iota(idx.begin(), idx.end(), 0);sort(idx.begin(), idx.end(), [](int a, int b) {return words[a] words[b];});// 2. 辅助函数计算两个字符串的 LCP 长度auto lcp [](const string s, const string t) - int {int i 0;int maxLen min(s.size(), t.size());while (i maxLen s[i] t[i]) {i;}return i;};// 3. 遍历所有长度为 k 的窗口找 mx, mx2, mx_iint mx 0; // 最大 LCPint mx2 0; // 次大 LCPint mx_i 0; // 最大 LCP 窗口的起始下标for (int i 0; i n - k; i) {int len lcp(words[idx[i]], words[idx[i k - 1]]);if (len mx) {mx2 mx;mx len;mx_i i;} else if (len mx2) {mx2 len;}}// 4. 构建答案vectorint ans(n, mx);// 属于最大 LCP 窗口 [mx_i, mx_i k - 1] 的原始下标答案改为 mx2for (int i mx_i; i mx_i k; i) {ans[idx[i]] mx2;}return ans;}};复杂度分析指标 复杂度时间 O(n log n 总字符数) — 排序 O(n log n)所有 LCP 计算的总比较次数受限于字符串总长度≤ 10^5空间 O(n) — 下标数组 答案数组说明- 排序时只排下标不移动原字符串保证能追溯到每个元素的原始位置。- lcp 函数直接按字符比较题目保证全为小写英文字母。- 当 mx 窗口内有多个相同字符串时移除其中一个可能导致窗口内仍剩 k 个相同字符串但按照排序后的窗口定义该特定窗口已被破坏此时答案退化为 mx2这在题解中已被证明是正确的若 mx2 与 mx 有交集则 mx2 一定是 mx 的前缀仍能满足。

相关新闻

AI服装AI模特批量生成电商图,这些工具帮你高效换装

AI服装AI模特批量生成电商图,这些工具帮你高效换装

随着电商平台竞争日益激烈,服装模特图成为商家推广核心素材,AI服装AI模特工具不仅大幅提升图像制作效率,也推动了商品展示创新。本文将深入分析主流AI图片与视觉工具,结合实际使用经验,帮助电商运营者找到适合自身业务…

2026/7/5 10:32:02阅读更多 →
Altium Designer阻焊开窗原理与工程实践

Altium Designer阻焊开窗原理与工程实践

1. Altium Designer电气层开窗的核心原理 在PCB设计中,开窗(即阻焊开窗)是指通过去除阻焊层(Solder Mask)的覆盖,使铜箔裸露出来便于焊接或散热的技术操作。与常规认知不同,阻焊层(T…

2026/7/5 10:32:02阅读更多 →
STM32F405飞控硬件设计解析与AD工程文件优化

STM32F405飞控硬件设计解析与AD工程文件优化

1. 项目背景:F405飞控硬件设计中的AD工程文件解析 最近在重新设计一款基于STM32F405的飞控硬件,偶然发现供应商提供的AD格式工程文件里藏着不少宝贝。作为一款在开源飞控领域广泛使用的主控芯片,F405的参考设计本应唾手可得,但实际…

2026/7/5 10:27:01阅读更多 →
4:IDEA中git的使用--回滚

4:IDEA中git的使用--回滚

以下三个阶段来介绍:未Commit的文件;已经Commit,但未push的文件;已经push的文件;1. 未Commit 对于未Commit的文件,回滚代码,可以在Commit窗口,选中文件,鼠标右键&#xf…

2026/7/5 11:37:07阅读更多 →
MediaPipe手势控制鼠标:原理与实现

MediaPipe手势控制鼠标:原理与实现

1. 项目概述:用MediaPipe实现隔空手势控制鼠标 最近在PiscCode技术社区看到一个很有意思的项目——通过手势识别实现隔空控制电脑鼠标。这个创意让我想起科幻电影里那些炫酷的隔空操作场景,现在借助MediaPipe这样的开源框架,我们完全可以在自…

2026/7/5 11:37:07阅读更多 →
基于YOLOv8与C#的工业视觉检测系统开发指南

基于YOLOv8与C#的工业视觉检测系统开发指南

1. 项目背景与核心需求工业视觉检测在现代制造业中扮演着越来越重要的角色。传统的人工检测方式存在效率低、漏检率高、易受疲劳影响等问题。而基于OpenCV的传统视觉算法虽然能处理一些简单的缺陷检测,但对于复杂缺陷(如曲面划痕、微小裂纹等&#xff09…

2026/7/5 11:37:07阅读更多 →
YOLOv8+PyQt5电力巡检异常检测系统开发实战

YOLOv8+PyQt5电力巡检异常检测系统开发实战

1. 项目背景与核心价值电力巡检是保障电网安全运行的关键环节,传统人工巡检存在效率低、漏检率高、恶劣环境风险大等问题。这套基于YOLOv8PyQt5的异常检测系统,正是为解决这些痛点而生。我在实际电网项目中验证过,相比传统方案可提升3倍检测效…

2026/7/5 11:37:07阅读更多 →
YOLO26与C#结合实现高效目标检测

YOLO26与C#结合实现高效目标检测

1. YOLO26与C#结合的背景与价值在计算机视觉领域,YOLO(You Only Look Once)系列算法因其出色的实时性能而广受欢迎。最新一代的YOLO26在保持高精度的同时,进一步优化了推理速度,使其成为工业级应用的理想选择。而C#作为.NET生态的核心语言&am…

2026/7/5 11:37:07阅读更多 →
SMUDebugTool开源指南:解锁锐龙处理器深度调试的终极武器

SMUDebugTool开源指南:解锁锐龙处理器深度调试的终极武器

SMUDebugTool开源指南:解锁锐龙处理器深度调试的终极武器 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…

2026/7/5 11:32:06阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/5 3:48:09阅读更多 →