LeetCode热题100——哈希表

哈希表

  • 1.两数之和
  • 2.字母异位词分组
  • 3.最长连续序列

1.两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。可以按任意顺序返回答案。

// 题解思路:使用哈希表查找遍历目标(无序)
vector<int> twoSum(vector<int>& nums, int target) {if (nums.empty()) {return {};}std::unordered_map<int, int> map;for (int i = 0; i < nums.size(); ++i) {if (map.count(target - nums[i])) {return {i, map[target - nums[i]]};} else {map[nums[i]] = i;}}return {};
}

2.字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

// 题解思路:排序后分组
vector<vector<string>> groupAnagrams(vector<string>& strs) {std::unordered_map<string, vector<string>> map;for (const auto& str : strs) {string key = str;sort(key.begin(), key.end());map[key].emplace_back(str);}vector<vector<string>> result;for (auto iter = map.begin(); iter != map.end(); ++iter) {result.emplace_back(iter->second);}return result;
}

3.最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

// 题解思路:排序去重,相邻计算统计最大长度
int longestConsecutive(vector<int>& nums) {if (nums.empty()) {return 0;}sort(nums.begin(), nums.end());auto iter = std::unique(nums.begin(), nums.end());nums.erase(iter, nums.end());int update_count = 1;int max_length = 1;for (int i = 0; i < nums.size() - 1; ++i) {if (nums[i+1] - nums[i] == 1) {max_length = std::max(max_length, ++update_count);} else {update_count = 1;max_length = std::max(max_length, update_count);}}return max_length;
}

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

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

相关文章

WSL——ubuntu中anaconda换源(conda、pip)

1、conda 打开Ubuntu&#xff0c;输入下列命令。 conda config --set show_channel_urls yes 在文件管理器地址栏&#xff0c;输入&#xff1a;\\wsl$。打开Ubuntu根路径&#xff0c;其中显示了.condarc文件。 以文本形式打开&#xff0c;并输入要换的源&#xff0c;保存即可。…

【QT】信号和槽能自动传递参数

一、前置示例代码 main.cpp #include "widget.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv); // 应用程序对象a&#xff0c;在Qt中&#xff0c;应用程序对象&#xff0c;有且仅有一个。Widget w; // 窗口对…

JS中return的用法

在JavaScript中&#xff0c;return是一个关键字&#xff0c;用于从函数中返回值。当函数执行到return语句时&#xff0c;它将立即停止执行并返回指定的值。如果函数未指定返回值&#xff0c;则默认返回undefined。return语句可以在函数内的任何地方使用。 以下是return语句的用…

信息系统项目管理师教程 第四版【第2章-信息技术发展-思维导图】

信息系统项目管理师教程 第四版【第2章-信息技术发展-思维导图】

【AD9361 数字接口CMOS LVDSSPI】B 并行数据之CMOS

##接上一篇&#xff1b; 本节介绍 AD9361 数字接口CMOS &LVDS&SPI最后一张表中四种工作模式的具体配置及时序波形图。 目录 1、单端口半双工模式 &#xff08;CMOS&#xff09; *代称 SHC*换句话说&#xff0c;最大值是12‘b0111_1111_1111&#xff0c;即0x7FF&#xf…

Selenium自动测试框架

selenium3 selenium元素的定位css 选择器Xpath 操作测试对象 API添加等待浏览器的操作键盘操作鼠标操作定位一组元素下拉框弹窗上传文件 <dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><…

科大讯飞发布讯飞星火 3.0;开源AI的现状

&#x1f680; 科大讯飞发布讯飞星火 3.0&#xff0c;综合能力超越ChatGPT&#xff08;非GPT-4版&#xff09; 摘要&#xff1a;科大讯飞在2023全球1024开发者节上宣布讯飞星火 3.0正式发布&#xff0c;号称综合能力已超越ChatGPT。据介绍&#xff0c;星火认知大模型 V3.0在文…

Windows查看核心与线程数

文章目录 前言一、可视化界面1、任务管理器2、设备管理器3、CPU-Z 二、命令或程序1、cmd命令2、Java程序 前言 查询电脑硬件CPU信息命令的学习&#xff0c;予以记录&#xff01; 参考博客&#xff1a;https://blog.csdn.net/huazicomeon/article/details/53540852 一、可视化界…

Flutter报错RenderBox was not laid out: RenderRepaintBoundary的解决方法

文章目录 报错问题分析问题原因 解决办法RenderBox was not laid out错误的常见原因常见原因解决方法 RenderRepaintBoundaryRenderRepaintBoundary用途 报错 RenderBox was not laid out: RenderRepaintBoundary#d4abf relayoutBoundaryup1 NEEDS-PAINT NEEDS-COMPOSITING-BI…

“华为杯”研究生数学建模竞赛2015年-【华为杯】B题:数据的多流形结构分析(续)(附python代码实现))

目录 6.3 问题三求解 6.3.1 题 a 求解 6.3.2 题 b 求解 6.3.3 题 c 求解 6.4 问题四求解 6.4.1 图

LibreOffice编辑excel文档如何在单元格中输入手动换行符

用WPS编辑excel文档的时候&#xff0c;要在单元格中输入手动换行符&#xff0c;可以先按住Alt键&#xff0c;然后回车。 而用LibreOffice编辑excel文档&#xff0c;要在单元格中输入手动换行符&#xff0c;可以先按住Ctrl键&#xff0c;然后回车。例如&#xff1a;

力扣 26. 删除有序数组中的重复项

目录 1.解题思路2.代码实现 1.解题思路 由于数组为非严格递增排列的数组&#xff0c;因此可利用快慢指针&#xff0c;如果快指针减一不等于快指针&#xff0c;将快指针的值给慢指针&#xff0c;并将快慢指针同时加一&#xff0c;但如果相同&#xff0c;则只让快指针加一向后走…

记一次线程爆满导致服务器崩溃的问题排查

记一次线程爆满导致服务器崩溃的问题排查 重启服务器 重启后&#xff0c;ssh连接发现下面问题 fork faild:Cannot allocate memory 以为是内存满了 于是&#xff0c;free -h,查看内存情况&#xff0c;还有&#xff0c;观察一段时间后&#xff0c;内存没多大变化 修改…

PHP 同城服务共享茶室软硬件结合小程序开发的注意事项?

在现在共享经济的兴起时代&#xff0c;同城服务共享茶室作为一种新型的商业模式&#xff0c;越来越受到人们的关注。为了提高用户体验和服务质量&#xff0c;开发一款基于PHP的同城服务共享茶室软硬件结合的小程序成为了必要的选择。本文将详细介绍在开发过程中需要注意的事项。…

鸡尾酒学习——环游世界

1、材料&#xff1a;白朗姆、龙舌兰、威士忌、金酒、伏特加、蓝橙力娇酒、柠檬汁、红石榴糖浆、橙汁、冰块&#xff1b; 2、口感&#xff1a;酸苦涩口味&#xff0c;下层感觉是在喝橙汁&#xff0c;上层在喝酒&#xff0c;适合喜欢喝橙汁以及酒的人&#xff0c;恰巧我不喜欢这两…

Android WMS——ViewRootImpl分析(六)

一、简介 ViewRootImpl是View中的最高层级,属于所有View的根(但ViewRootImpl不是View,只是实现了ViewParent接口),维护了整个视图结构,并作为输入事件的分发器和绘图管道的输入端点,承担着输入事件分发、窗口管理、视图绘制和系统事件响应等关键角色。对于Android应用程…

机器学习(五)如何理解机器学习三要素

1.8如何理解机器学习三要素 统计学习模型策略算法 模型&#xff1a;规律yaxb 策略&#xff1a;什么样的模型是好的模型&#xff1f;损失函数 算法&#xff1a;如何高效找到最优参数&#xff0c;模型中的参数a和b 1.8.1模型 机器学习中&#xff0c;首先要考虑学习什么样的…

锐捷EG易网关 phpinfo.view.php 信息泄露

致未经身份验证获取敏感信息 访问漏洞url&#xff1a; /tool/view/phpinfo.view.php漏洞证明&#xff1a; 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢。 免责声明&#xff1a;由于传播或利用此文所提供的信息、技术或方法而造成的任何…

GZ035 5G组网与运维赛题第3套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第3套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; 子…

利用 JSqlParser 防止 SQL 注入

高手文章《jsqlparser:实现基于SQL语法分析的SQL注入攻击检查》介绍了利用 JSqlParser 防止 SQL 注入&#xff0c;写得很好&#xff0c;只不过有两个问题&#xff0c;代码比较复杂&#xff0c;我于是作了简化&#xff0c;只有两个类&#xff1b;其次检测比较严格&#xff0c;连…