当前位置: 首页 > article >正文

【LeetCode 热题 100】哈希 系列

📁1. 两数之和

        本题就是将通过两层遍历优化而成的,为什么需要两层遍历,因为遍历 i 位置时,不知道i-1之前的元素是多少,如果我们知道了,就可以通过两数相加和target比较即可。

        因为本题要求返回下标,所以我们是用unordered_map来存储<元素值,下标>

vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int , int> hash;for(int i = 0 ; i < nums.size() ; ++i){if(hash.count(target - nums[i]))return {hash[target - nums[i]] , i};hash[nums[i]] = i;}return {-1 , -1};}

📁49. 字母异位词分组

        字母异位词 是由重新排列源单词的所有字母得到的一个新单词。我们就根据这个特性,将字符串重新排序,将重新排序后相同的字符串放到字符串数组中,最终这些字符串数组就是最终结果。

        这里我们就用到了unordeed_map<string , vector<string>> 来映射重新排序后的字符串对应的字符串数组。

vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string , vector<string>> hash;for(auto str : strs){string s = str;sort(s.begin() , s.end());hash[s].push_back(str);}vector<vector<string>> ret;for(auto kv : hash)ret.push_back(kv.second);return ret;
}

📁128. 最长连续序列

        找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度,是本题目的关键。如果仅仅通过一次遍历是不能解决问题的,因为遍历到 i 位置时,得到num[i+1],但是num[i] - 1可能出现在i位置以后,因此我们需要排序或者记录下来元素是否出现过。

        题目要求时间复杂度是O(N),因此不考虑排序,这里就用到哈希unordered_set来记录元素是否出现过。

        核心思想就是,判断每个元素是否是最长数字连续序列的第一个元素;如果是,查找之后是否有元素及之后元素的个数。如果不是,就不需要处理了。

int longestConsecutive(vector<int>& nums) {unordered_set<int> hash;for(auto e: nums)hash.insert(e);int ans = 0;for(auto& e : hash){if(!hash.count(e - 1)){int cur = e;int step = 1;while(hash.count(cur + 1)){cur += 1;step += 1;}ans = max(ans , step);}}return ans;}

相关文章:

【LeetCode 热题 100】哈希 系列

&#x1f4c1;1. 两数之和 本题就是将通过两层遍历优化而成的&#xff0c;为什么需要两层遍历&#xff0c;因为遍历 i 位置时&#xff0c;不知道i-1之前的元素是多少&#xff0c;如果我们知道了&#xff0c;就可以通过两数相加和target比较即可。 因为本题要求返回下标&#xf…...

ES6学习04-数组扩展:扩展运算符、新增方法

一、扩展运算符 1. 2. eg: 3. 二、新增方法 1. arguments 元素组合 类似数组对象 2....

Redis存储“大数据对象”的常用策略及StackOverflowError错误解决方案

Hi&#xff0c;大家好&#xff0c;我是灰小猿&#xff01; 在一些功能的开发中&#xff0c;我们一般会有一些场景需要将得到的数据先暂时的存储起来&#xff0c;以便后面的接口或业务使用&#xff0c;这种场景我们一般常用的场景就是将数据暂时存储在缓存中&#xff0c;之后再…...

在轨道交通控制系统中如何实现μs级任务同步

轨道交通作为现代城市化进程中的重要支柱,承载着数以亿计的乘客出行需求,同时也是城市经济运行的命脉。无论是地铁、轻轨还是高速铁路,其控制系统的稳定性和可靠性直接关系到运营安全和效率。在这样一个高风险、高复杂度的环境中,任何微小的失误都可能导致灾难性后果。因此…...

嵌入式程序设计英语

实际要求:认识最基本的英文单词即可&#xff0c;(总计几百个) IDE 集成开发环境 fatal error fatal 致命的&#xff0c;error 错误&#xff0c;fatal error 致命的错误 main 主要的 include 包含 io input 输入&#xff0c;output 输出&#xff0c;input output …...

滚轮控制目标臂长度调整相机距离

通过鼠标滚轮来控制摄像机目标臂长度 , 调整相机距离 看图就行,不多说,照着连就完事了...

​‌FireCrawl‌爬虫工具​, Craw4ai

‌FireCrawl‌是一款开源的AI爬虫工具&#xff0c;专门用于Web数据提取&#xff0c;并将其转换为Markdown格式或其他结构化数据。FireCrawl特别适合处理使用JavaScript动态生成的网站&#xff0c;能够自动抓取网站及其所有可访问的子页面内容&#xff0c;并将其转换为适合大语言…...

pyenv库应用入门与Ubuntu端安装实践

pyenv库应用入门与Ubuntu端安装实践 pyenv概述virtualenv、pyvenv、pyenvvirtualenvpyvenvpyenv Ubuntu端安装pyenv实践安装依赖报错解决安装pyenv配置环境变量更换pyenv源地址 pyenv基本用法安装成功服务器部署scrapyd pyenv概述 pyenv 是一个用于管理多个 Python 版本的工具…...

CS5346 - Annotation in Visualization (可视化中的注释)

文章目录 Annotation 的重要性Levels of Annotation &#xff08;注释的层级&#xff09;Headings and IntroductionHeadings&#xff08;标题&#xff09;陈述型&#xff08;Statement&#xff09;&#xff1a;突出结论或有趣发现疑问型&#xff08;Question&#xff09;&…...

如何开发一套场外个股期权交易系统?个股期权交易软件包含:询价,报价,交易,持仓,行权,账户盈亏统计等

一、场外个股期权的定义与特点 场外个股期权&#xff08;Over-the-Counter Equity Option&#xff09;是一种由交易双方私下协商的非标准化金融衍生品合约&#xff0c;以特定个股为标的资产。与交易所上市的标准化期权不同&#xff0c;其合约条款&#xff08;如行权价、到期日…...

高速电路中的电阻、电容的选型及应用

2.1 电阻的应用 2.1.1 与电阻相关的经典案例 如果说芯片是电路的骨架&#xff0c;那么电阻就是在芯片之间起连接作用的关节。电阻的阻值、布放位置等&#xff0c;对设计的成功起着至关重要的作用。 【案例2.1】串联电阻过大&#xff0c;导致板间告警失败 某产品由业务板和主…...

六、adb通过Wifi连接

背景 收集是荣耀X40,数据线原装全新的&#xff0c;USB连上之后&#xff0c;老是断&#xff0c;电脑一直叮咚叮咚的响个不停&#xff0c;试试WIFI 连接是否稳定&#xff0c;需要手机和电脑用相同的WIFI. 连接 1.通过 USB 连接手机和电脑(打开USB调试等这些都略过) adb device…...

Java新手村第二站:泛型、集合与IO流初探

文章目录 Java新手村第二站&#xff1a;泛型、集合与IO流初探泛型包装类集合IO流函数式接口和Lambda表达式 Java新手村第二站&#xff1a;泛型、集合与IO流初探 泛型 泛型的概念与作用&#xff1a; 核心目的&#xff1a;在编译期提供类型安全检查&#xff0c;避免运行时的 Cla…...

AT_abc398_e [ABC398E] Tree Game 题解

题目传送门 题目大意 题目描述 本题是一道交互题&#xff08;你的程序需要通过输入输出与评测系统进行交互&#xff09;。 给定一棵包含 N N N 个顶点的树 G G G&#xff0c;顶点编号为 1 1 1 至 N N N。第 i i i 条边连接顶点 U i U_i Ui​ 和 V i V_i Vi​。 你和…...

CSI-external-provisioner

main() 这段Go代码是一个CSI&#xff08;容器存储接口&#xff09;Provisioner&#xff08;供应器&#xff09;的实现&#xff0c;用于在Kubernetes集群中动态提供持久卷。代码涉及多个组件和步骤&#xff0c;下面是对关键部分的解释&#xff1a; 初始化和配置 命令行标志和…...

android中dp和px的关系

关于android的dp和px的关系是我刚开始学习android的第一个知识点&#xff0c;不知不觉学安卓也有一年了&#xff0c;但是偶然间我发现我理解的dp和px的关系一直是错的&#xff0c;真的是有一点搞笑&#xff0c;今天特意写一篇博客纪念一下这个我理解错一年的知识点。 dp和px之间…...

‌DeepSeek模型在非图形智能体的应用中是否需要GPU

答&#xff1a;不一定 概念 1、是否需要GPU与应用是否图形处理应用无关 2、文本内容智能体大多也需要GPU来提供更好的性能 3、‌DeepSeek模型在非图形智能体的应用中是否需要GPU取决于具体的模型版本和部署环境 不需要GPU的模型版本 ‌DeepSeek-R1-1.5B‌&#xff1a; 这…...

4.14代码随想录第四十三天打卡

图论理论基础 https://www.programmercarl.com/kamacoder/%E5%9B%BE%E8%AE%BA%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 98. 所有可达路径 (1)题目描述: (2)解题思路: #include <iostream> #include <vector> #include <list> using namespace std;vec…...

【视频目标分割论文集】Efficient Track Anything0000

github 摘要 视频对象分割和追踪任意目标领域出现了强大的工具——分割任意模型 2&#xff08;SAM 2&#xff09;。SAM 2 实现令人印象深刻的视频对象分割性能的关键组成部分包括用于帧特征提取的大型多阶段图像编码器&#xff0c;以及存储过去帧记忆上下文以辅助当前帧分割的…...

码率自适应(ABR)决策的直播场景

直播场景 1. 直播场景的普遍框架与工作原理 主播端&#xff1a;即各类主播&#xff08;游戏、网红歌手、户外达人等&#xff09;&#xff0c;通过手机端或者个人电脑在线直播录制个人活动。 编码服务器&#xff1a;主播端上传视频流以后&#xff0c;编码服务器根据相应的编码转…...

SCP-Firmware安全通告:CVE-2024-11863和CVE-2024-11864

安全之安全(security)博客目录导读 目录 一、概述 二、CVE详情 三、受影响产品 四、修复建议 五、致谢 六、版本历史 一、概述 在SCP固件(SCP-Firmware)中发现两处安全漏洞&#xff0c;可能允许普通世界特权软件&#xff08;normal world privileged software&#xff…...

Redis高频面试题(含答案)

当然可以,Redis 是面试中非常常见的高频考点,尤其在后台开发、分布式系统、缓存设计等方向,面试官常常通过 Redis 来考察你的高并发处理能力、系统设计能力和对缓存一致性理解。 以下是一些典型 Redis 的面试场景题目类型和你可以如何回答的思路: ✅ 一、基础使用类问题 …...

双按键控制LED(中断优先级)

1.启动时&#xff0c;两个LED灯熄灭&#xff0c;1秒钟后&#xff08;定时器实现&#xff09;&#xff0c;LED自动点亮&#xff1b; 2.按键1按下后&#xff0c;通过中断int0把两个LED熄灭5s时间&#xff0c;int0优先级设置为最高&#xff08;优先级必须设置&#xff0c;设置后才…...

(四)机器学习---逻辑回归及其Python实现

之前我们提到了常见的任务和算法&#xff0c;本篇我们使用逻辑回归来进行分类 分类问题回归问题聚类问题各种复杂问题决策树√线性回归√K-means√神经网络√逻辑回归√岭回归密度聚类深度学习√集成学习√Lasso回归谱聚类条件随机场贝叶斯层次聚类隐马尔可夫模型支持向量机高…...

代码随想录第17天:二叉树

一、二叉搜索树的最近公共祖先&#xff08;Leetcode 235&#xff09; 由于是二叉搜索树&#xff0c;节点的值有严格的顺序关系&#xff1a;左子树的节点值都小于父节点&#xff0c;右子树的节点值都大于父节点。利用这一点&#xff0c;可以在树中更高效地找到最低公共祖先。 c…...

超越CUDA:ROCm与oneAPI在异构计算中的性能对比实验(国产GPU生态下的开发路径探索)

一、异构计算生态的竞争格局 当前异构计算领域呈现“一超多强”格局&#xff1a;英伟达凭借‌CUDA生态‌占据90%以上的AI训练市场份额‌&#xff0c;而AMD的‌ROCm‌与英特尔的‌oneAPI‌通过差异化技术路线持续挑战其垄断地位。二者在国产GPU生态建设中展现出独特价值—— R…...

全新电脑如何快速安装nvm,npm,pnpm

以下是全新电脑快速安装 nvm、npm 和 pnpm 的详细步骤&#xff0c;覆盖 Windows/macOS/Linux 系统&#xff1a; 一、安装 nvm&#xff08;Node Version Manager&#xff09; 1. Windows 系统 下载安装包&#xff1a; 访问 nvm-windows 官方仓库&#xff0c;下载 nvm-setup.ex…...

面试篇 - GPT-1(Generative Pre-Training 1)

GPT-1&#xff08;Generative Pre-Training 1&#xff09; ⭐模型结构 Transformer only-decoder&#xff1a;GPT-1模型使用了一个12层的Transformer解码器。具体细节与标准的Transformer相同&#xff0c;但位置编码是可训练的。 注意力机制&#xff1a; 原始Transformer的解…...

测试用例如何编写

综合起来&#xff0c;做测试用例时&#xff0c;需要考虑两个方面&#xff08;主要配合接口测试&#xff09; ①页面上显示的数据是从哪里来的&#xff0c;是否有全部显示 -- 简单来说就是数据效验②页面上显示的数据是否有交互/依赖&#xff08;操作的先后顺序会影响页面显示的…...

读者、写者问题优化

#include <stdio.h> #include <time.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> #include <semaphore.h> #define NUM_READERS 5 #define NUM_WRITERS 5 // 定义信号量和全局变量 sem_t sdata, srcount; int rea…...