【C++LeetCode】【热题100】字母异位词分组【中等】-不同效率的题解【3】

news2024/10/7 18:21:50

题目:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

暴力方法:
在这里插入图片描述

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        std::unordered_set<std::string> uniqueWord;//单词字符唯一化集合
        vector<vector<std::string>> res;//结果
        for(int i=0;i<strs.size();i++){//计算唯一化
            std::string tempStr=strs[i];
            std::sort(tempStr.begin(),tempStr.end());
            uniqueWord.insert(tempStr);
        }
        // std::cout<<uniqueWord.size()<<std::endl;
        //寻找字母异位词
        for(const auto & elem:uniqueWord){
            vector<std::string> tempRes;
            //std::cout<<strs.size()<<std::endl;
            for(vector<std::string>::iterator  it=strs.begin();it<strs.end();){
                // std::cout<<"elem:"<<elem<<std::endl;
                // std::cout<<"*it:"<<*it<<std::endl;
                std::string tempStr=*it;
                std::sort(tempStr.begin(),tempStr.end());
                //std::cout<<"*it:"<<elem<<"--"<<*it<<"--"<<tempStr<<std::endl;
                if(elem==tempStr){//取值
                    // std::cout<<*it;
                    tempRes.push_back(*it);
                    it=strs.erase(it);//剔除值 使得在剩下的值中进行查询 提高效率 
                }
                else{
                    it++;
                }
            }
            res.push_back(tempRes);
        }
        return res;
    }
};

优化方法:
在这里插入图片描述

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        std::unordered_map<std::string,vector<std::string>> uniqueWord;//单词字符唯一化集
        vector<vector<std::string>> res;
        for(int i=0;i<strs.size();i++){//计算唯一化
            std::string tempStr=strs[i];
            std::sort(tempStr.begin(),tempStr.end());
            uniqueWord[tempStr].push_back(strs[i]);
        }
        // std::cout<<uniqueWord.size()<<std::endl;
        //寻找字母异位词
        for(const auto & elem:uniqueWord){
            // std::cout<<elem<<std::endl;
            res.push_back(elem.second);
        }
        return res;
    }
};

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

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

相关文章

鸿蒙NEXT开发中的知识:构建自己的ArkTS应用工程(Stage模型)

创建ArkTS工程 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择File > New > Create Project来创建一个新工程。选择Application应用开发&#xff08;本文以应用开发为例&#xff0c;Atomic Servi…

穿越时空的金星奥秘:揭秘古代天文学的惊人成就

在浩瀚的历史长河中&#xff0c;人类对宇宙的探索从未停止。而在中国古代&#xff0c;一项惊人的天文发现&#xff0c;至今仍让世界为之惊叹。那就是西汉时期的《五星占》&#xff0c;一部揭示金星会合周期的珍贵文献&#xff0c;其精确度之高&#xff0c;足以令现代天文学家瞠…

C/C++ 数组负数下标

一 概述 在 C 中&#xff0c;数组是一块连续的内存空间&#xff0c;数组的下标通常用来定位这段内存中的特定元素。下标通常从 0 开始&#xff0c;最大到数组长度减 1。例如&#xff0c;一个有 10 个元素的数组&#xff0c;其有效下标范围是从 0 到 9。 当你尝试使用负数下标来…

免费ai写作?这三款软件是你的好帮手!

在信息爆炸的今天&#xff0c;自媒体已成为越来越多人展现自我、分享知识的平台。然而&#xff0c;对于许多自媒体创作者来说&#xff0c;写作过程中的灵感枯竭、文笔不畅等问题常常困扰着他们。幸运的是&#xff0c;随着人工智能技术的飞速发展&#xff0c;免费AI写作软件应运…

由于找不到msvcr120.dll,无法继续执行代码有什么办法解决呢?

msvcr120.dll是一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;属于Microsoft Visual C Redistributable Packages for Visual Studio 2013。这个DLL文件包含了C运行时库&#xff08;CRT&#xff09;的函数&#xff0c;这些函数提供了程序执行中所需的标准C语言功能…

聊聊 oracle varchar2 字段的gbk/utf8编码格式和字段长度问题

聊聊 oracle varchar2 字段的gbk/utf8编码格式和字段长度问题 1 问题现象 最近在排查某客户现场的数据同步作业报错问题时&#xff0c;发现了部分 ORACLE 表的 varchar2 字段&#xff0c;因为上游 ORACLE数据库采用 GBK 编码格式&#xff0c;而下游 ORACLE 数据库采用UTF8 编…

【功能详解】银河麒麟操作系统“安全启动”是如何发挥作用的?

2023年12月&#xff0c;财政部、工信部发布了7项信息类产品《政府采购需求标准》&#xff0c;为包括操作系统在内多项产品的政府集中采购提供政策支撑。其中&#xff0c;安全、可信作为国产操作系统的基本要求备受关注。 安全体系的构建离不开操作系统本身的硬实力&#xff0c…

[【机器学习】深度概率模型(DPM)原理和文本分类实践

1.引言 1.1.DPM模型简介 深度概率模型&#xff08;Deep Probabilistic Models&#xff09; 是结合了深度学习和概率论的一类模型。这类模型通过使用深度学习架构&#xff08;如神经网络&#xff09;来构建复杂的概率分布&#xff0c;从而能够处理不确定性并进行预测。深度概率…

MQTT协议详解:物联网通信的高效解决方案(附带代码示例)

什么是MQTT协议 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种基于发布/订阅模式的轻量级通信协议&#xff0c;专为资源受限的设备和低带宽、不稳定的网络设计。MQTT协议由IBM开发&#xff0c;现已成为物联网&#xff08;IoT&#xff09;领域的标准协…

顶顶通呼叫中心中间件-替换授权文件使授权文件生效指南

一、登录my.ddrj.com下载授权文件 登录地址&#xff1a;用户-顶顶通授权管理系统 登录之后正式授权然后点击查看把license.json下载下来&#xff0c;然后替换到fs的授权文件路径&#xff0c;默认路径是&#xff1a;/ddt/fs/conf 如果安装路径不一样就需要自己去看看授权文件存…

抖音商城618好物节消费数据报告发布,带货成交额同比增长300%

6月21日&#xff0c;“抖音商城618好物节”消费数据报告发布&#xff0c;呈现618期间平台全域经营情况及大众消费趋势。 今年618大促活动中&#xff0c;抖音电商投入流量资源和消费券&#xff0c;鼓励商家、达人双向经营货架场景和内容场景&#xff0c;不断激活消费市场。 报…

丰臣秀吉-读书笔记五

如今直面自己一生中的最高点&#xff0c;加之平日里的觉悟与希冀&#xff0c;此时此地他“一定要死得其所”。 “武士之道&#xff0c;便是在死的瞬间决定一生或华或实。一生谨慎、千锤百炼&#xff0c;如果在死亡这条路上一步走错&#xff0c;那么一生的言行便全部失去真意&am…

ELK+Filebeat+kafka+zookeeper构建海量日志分析平台

ELK是什么&#xff08;What&#xff09;&#xff1f; ELK组件介绍 ELK 是ElasticSearch开源生态中提供的一套完整日志收集、分析以及展示的解决方案&#xff0c;是三个产品的首字母缩写&#xff0c;分别是ElasticSearch、Logstash 和 Kibana。除此之外&#xff0c;FileBeat也是…

智赢选品,OZON数据分析选品利器丨萌啦OZON数据

在电商行业的激烈竞争中&#xff0c;如何快速准确地把握市场动态、洞察消费者需求、实现精准选品&#xff0c;是每个电商卖家都面临的挑战。而在这个数据驱动的时代&#xff0c;一款强大的数据分析工具无疑是电商卖家们的得力助手。今天&#xff0c;我们就来聊聊这样一款选品利…

阐述一下Golang中defer的原理

基本用法 在Go语言中&#xff0c;defer关键字用于在函数返回前执行一段代码或调用一个清理函数。这对于处理文件关闭、解锁或者返回一些资源到资源池等操作非常有用。 其基本用法如下所示&#xff1a; package mainimport "fmt"func main() {example() }func exam…

解决uniapp h5 本地代理实现跨域访问及如何配置开发环境

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 如何解决uniapp H5本地代理实现跨域访问&#xff1f; 1.第一种解决方法&#xff1a; 直接创建一个vue.config.js文件&#xff0c;并在里面配置devServer&#xff0c;直接上…

Transformer预测 | 基于Transformer的风电功率多变量时间序列预测(Matlab)

文章目录 预测效果文章概述模型描述程序设计参考资料预测效果 文章概述 Transformer预测 | 基于Transformer的风电功率多变量时间序列预测(Matlab) Transformer 模型本质上都是预训练语言模型,大都采用自监督学习 (Self-supervised learning) 的方式在大量生语料上进行训练,…

国产基于Vue+Echarts 免费开源 AIoT 物联网可视化Web组态大屏解决方案

项目源码&#xff0c;文末联系小编 01 DataRoom可视化大屏开发工具 DataRoom是一款基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的大屏设计器&#xff0c;前后端一体化架构&#xff0c;拥有几十种炫酷图表。具备大屏分组管理、大屏设计、大屏预览能力&…

Marin说PCB之如何在CST仿真软件中添加三端子的电容模型?

上期文章小编我给诸位道友们分享了Murata家的三端子电容的一些特性&#xff0c;这期文章接着上回把三端子电容模型如何在CST软件中搭建给大家分享一下&#xff0c;小编我辛辛苦苦兢兢业业的给各位帖子们免费分享我的一些设计心得&#xff0c;这些按照小编我华山派门派的要求都是…

chrome浏览器 network 显示感叹号(chrome network thinttling is enabled)

chrome浏览器上network出现一个黄色感叹号&#xff0c;鼠标移上去提示chrome network thinttling is enabled&#xff0c;这是因为开启了节流模式&#xff0c;直接把网络模式改为no throttling&#xff08;有的浏览器为online&#xff09;就可以了。 ##Tips&#xff1a; 1、n…