Leetcode 1268. 搜索建议系统 (Search Suggestions System)

news/2026/1/20 17:33:46/文章来源:https://www.cnblogs.com/cxy11-blog/p/19507931

本题使用前缀树 (Trie) 解法

问题理解

给定产品列表 products 和搜索词 searchWord,要求在输入每个字符后,返回最多3个字典序最小具有当前前缀的产品名。Trie 解法通过预处理将推荐结果缓存在每个前缀节点中,实现高效查询。
Example:

Input: products = ["mobile","mouse","moneypot","monitor","mousepad"], searchWord = "mouse"
Output: [["mobile","moneypot","monitor"],["mobile","moneypot","monitor"],["mouse","mousepad"],["mouse","mousepad"],["mouse","mousepad"]]
Explanation: products sorted lexicographically = ["mobile","moneypot","monitor","mouse","mousepad"].
After typing m and mo all products match and we show user ["mobile","moneypot","monitor"].
After typing mou, mous and mouse the system suggests ["mouse","mousepad"].

思路

  1. 构建带建议缓存的 Trie
    • 每个 Trie 节点包含子节点映射和一个 suggestions 列表(最多存3个字符串)
    • 先对 products 全局排序,再依次插入 Trie,确保每个节点的 suggestions 自然保持字典序
  2. 插入过程
    • 遍历产品名每个字符,沿 Trie 路径下行
    • 在每个经过的节点,若 suggestions 未满(❤️),则加入当前产品名
  3. 查询过程
    • 沿 searchWord 字符路径遍历 Trie
    • 若路径存在,取当前节点的 suggestions;否则后续结果全为空列表

trick

  • 先排序再插入:避免在每个节点反复排序,大幅提升效率
  • 限制 suggestions 大小为 3:节省空间,符合题目要求
  • 路径中断处理:一旦某个字符找不到子节点,后面所有前缀都无匹配,但仍要插入空string.
  • 只存引用或完整字符串:C++ 中直接存 string 即可(现代编译器有 SSO 优化)
  • 使用 unordered_map<char, TrieNode*>:比固定数组更通用(支持任意字符集)

Code

class Solution {
public:struct TrieNode{unordered_map<char, TrieNode*> children;vector<string> suggestions;}; // Trie structure, every children has a character and point a sub-Trie.vector<vector<string>> suggestedProducts(vector<string>& products, string searchWord) {TrieNode* root = new TrieNode();vector<vector<string>> answer;sort(products.begin(), products.end());// Build a Trie treefor(const string& product: products){TrieNode* curr = root;for(char c: product){if(curr->children.find(c) == curr->children.end()){curr->children[c] = new TrieNode();}curr = curr->children[c];if (curr->suggestions.size() < 3) {curr->suggestions.push_back(product);}}}TrieNode* curr = root;for (char c: searchWord){if(curr && curr->children.count(c)) {curr = curr->children[c];answer.push_back(curr->suggestions);}else {curr = nullptr;answer.push_back({});}}return answer;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1190041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

震惊!6.5k星标开源神器!OpenHands架构大拆解,小白也能秒变AI Agent大神!

0x00 摘要 掌握Agent的底层逻辑&#xff0c;不仅是熟练使用的基础&#xff0c;更是设计、评估和扩展的关键。对于产品经理、人工智能工程师和技术决策者来说&#xff0c;只有深入理解Agent的技术蓝图&#xff0c;才能在AI应用的落地过程中做出精准布局&#xff0c;抓住未来的机…

供应链库存做不起来,不在指标不对,而在没有系统把它跑起来

你可能也遇到过这样的情况&#xff1a; 库存报表、指标看得明明白白&#xff0c;可到关键时刻&#xff0c;库存还是不准。有的原材料堆积成山&#xff0c;有的关键零件缺货。问题明明在数据里&#xff0c;但总是发现得太晚。很多人第一反应是指标选错了&#xff0c;或者分析不够…

SSM201大学生第二课堂学分成绩活动报名vue

目录SSM201大学生第二课堂学分成绩活动报名系统&#xff08;Vue实现&#xff09;摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;SSM201大学生第二课堂学分成绩活动报名系统&#xff08;Vue实现&#xff09;摘要 该系统基于…

企业用离心机有哪些?6大类型、应用场景及厂家全解析 - 品牌推荐大师1

在企业研发与生产环节中,离心机是进行物质分离、提纯和制备的关键设备。不同于通用机型,企业用离心机更注重可靠性、通量、合规性以及与生产流程的衔接。本文将从企业实际应用出发,系统解析六大主流离心机类型及其应…

让科技更直观!10 家擅长科技类发布会的策划公司,从搭建到互动全拿捏 - 速递信息

在科技日新月异的今天,一场成功的科技类发布会不仅是产品亮相的舞台,更是品牌实力与技术创新的光辉展现。据行业统计,精心策划的科技发布会能使产品市场认知度提升高达40%,有效促进销售转化。在众多策划公司中,有…

2026大型激光切割机厂家权威推荐榜单:金属激光切割机/管材激光切割机/小型激光切割机/激光光纤切割机源头厂家精选。

在全球制造业向智能化和高端化转型的浪潮中,大型激光切割机以其卓越的加工能力、极高的生产效率和无可比拟的工艺精度,已成为重塑重工、航天、汽车制造等核心产业的关键装备。行业数据显示,全球激光切割机市场规模正…

企业如何构建数据中台?从0到1的实战指南与避坑要点

在数字经济时代,数据中台已从"锦上添花"的可选项,转变为企业构建核心竞争力的关键基础设施。据行业统计,成功实施数据中台的企业,其数据利用率提升3倍以上,业务决策效率提升40%。数据中台的核心理念在于…

3步彻底解密网易云音乐NCM格式:让音频文件自由播放的终极指南

3步彻底解密网易云音乐NCM格式&#xff1a;让音频文件自由播放的终极指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式音频无法在其他播放器使用而烦恼吗&#xff1f;&#x1f914; 今天我将为你介…

【RPA】影刀数据连接器的使用

影刀数据连接器 使用手册 登录 使用影刀官方给定的账号,登录连接器系统。选择要管理的组织。添加存储 在使用连接器时,可先添加数据要存储的位置,支持MySQL、邮箱、飞书多维表格、钉钉AI表格等。添加账密 在配置任…

效率革命:2025年六大低代码数据平台横评,业务自助分析成为现实

在数字经济时代,数据驱动决策的速度直接决定了企业的竞争力。传统数据流程"业务提需-IT开发-交付"已成为企业敏捷性的瓶颈,无法满足快节奏的业务需求。据统计,传统模式下业务部门获取数据平均需要5-7个工…

发送一个我的第一个博客

进入官网: 点击进入 加载中...(s 后跳转)如白屏请刷新

2025年丝印机企业口碑榜:本地优选排行,优质的丝印机厂家有哪些博美印刷层层把关品质优 - 品牌推荐师

在制造业精细化、个性化需求日益凸显的今天,丝网印刷作为一项应用广泛的特种印刷工艺,其设备供应商的服务能力与产品可靠性备受市场关注。尤其对于珠三角这一制造业重镇而言,本地化的设备供应不仅意味着更快的响应速…

合规为先 安全护航 — 安全合规的医疗器械第三方公司推荐! - 速递信息

在医疗器械行业,合规性与安全性是产品成功的基石。随着医疗技术的不断进步和监管要求的日益严格,选择一家专业、可靠的第三方服务公司成为企业产品上市的关键。今天,我们首先聚焦于一家在医疗器械领域深耕多年的领军…

IP定位终极方案:ip2region企业级秒级集成与零依赖部署指南

IP定位终极方案&#xff1a;ip2region企业级秒级集成与零依赖部署指南 【免费下载链接】ip2region Ip2region (2.0 - xdb) 是一个离线IP地址管理与定位框架&#xff0c;能够支持数十亿级别的数据段&#xff0c;并实现十微秒级的搜索性能。它为多种编程语言提供了xdb引擎实现。 …

大数据毕设项目推荐-基于大数据技术的个性化的电影推荐系统基于Django协同过滤算法的电影个性化推荐系统大数据【附源码+文档,调试定制服务】

**java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者…

2026年焊接专机厂家实力推荐:郑州旭申智能装备,纵环缝/内外缝/变位机全系解决方案

在风电、工程机械、电力设备等重工业领域,焊接专机的性能直接影响生产效率与产品质量。郑州旭申智能装备有限公司凭借全系列焊接专机产品矩阵,成为行业技术突破的标杆企业。其自主研发的焊接专机、纵环缝焊接专机、内…

靠谱的医疗器械检测服务机构,专业团队保障检测结果靠谱有效! - 速递信息

在医疗器械行业,检测结果的准确性和可靠性直接关系到产品的质量和患者的安全。因此,选择一家专业、靠谱的医疗器械检测服务商显得尤为重要。今天,我们就来深入了解一下在业内享有盛誉的斯坦德医疗器械,以及几家同样…

2026年淘金设备厂家推荐榜:淘金机械 /淘金车/ 移动淘金机械/ 淘金船制造商精选

在砂金矿业领域,淘金设备的技术迭代与市场应用始终是行业关注的焦点。随着全球砂金资源开发需求的增长,淘金机械、淘金车、移动淘金机械及淘金船等设备的性能优化与供应稳定性成为企业竞争力的核心指标。本文基于行业…

2026年宝钢钢材供应商推荐榜:上海钢郝实业有限公司,高强/酸洗/镀锌/汽车钢全系供应

在钢材贸易领域,选择一家可靠的供应商至关重要。上海钢郝实业有限公司凭借其专业的钢材加工能力与稳定的供应链体系,成为行业内备受认可的合作伙伴。公司主营宝钢超高强钢、宝钢酸洗、宝钢镀锌、宝钢锌铁合金、宝钢冷…

安全第一!2026年最值得信赖的五大安全电子签名平台推荐 - 博客万

在数字化交易成为常态的今天,一份电子合同承载的不仅是商业约定,更是企业的核心数据与法律生命线。因此,当企业寻求电子签名解决方案时,“功能强大”或“界面美观”都应退居次位,一个无可争议的首要标准必须是——…