首页 > 其他分享 >代码随想录第六天 | 哈希表、242.有效的字母异位词 、349. 两个数组的交集 、202. 快乐数、1. 两数之和

代码随想录第六天 | 哈希表、242.有效的字母异位词 、349. 两个数组的交集 、202. 快乐数、1. 两数之和

时间:2023-10-16 23:01:39浏览次数:39  
标签:202 哈希 sum 元素 随想录 数组 https 两数 cn

哈希表

  • 什么是哈希表

哈希表是根据关键码的值而直接进行访问的数据结构。

简单的例子:数组

  • 什么时候想到用哈希法
    当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。

  • 哈希碰撞

元素通过哈希函数被映射到同一个索引下标位置

解决方法:

  1. 拉链法

从发生冲突的位置拉出一条链表,发生冲突的元素都被存储在链表中。

  1. 线性探测法

要保证tabelSize大于dataSize, 我们需要依靠哈希表中的空位来解决碰撞问题。

如果位置i冲突,就向下找i+1来存储另一个数据。

  • 常见的三种哈希结构

数组、set(集合)、map(映射)

C++中,std::unordered_set、std::unordered_map底层实现为哈希表

242.有效的字母异位词

内容:给定两个字符串 s和t,编写一个函数来判断t是否是s的字母异位词。

题目链接:https://leetcode.cn/problems/valid-anagram/

思路:定义一个大小为26的数组,记录各个字母出现的次数。
小技巧:一个record数组,一次遍历次数++,一次遍历次数--,就不需要定义两个record数组了。

349. 两个数组的交集

内容:
给定两个数组 nums1 和 nums2 ,返回它们的交集 。输出结果中的每个元素一定是唯一 的。我们可以 不考虑输出结果的顺序。

链接:https://leetcode.cn/problems/intersection-of-two-arrays/

思路:要学会使用一种哈希数据结构:unordered_set,对于没有限制数值大小的题目,不能用数组。

202. 快乐数

链接:https://leetcode.cn/problems/happy-number/

思路:题目中说了会 无限循环,那么也就是说求和的过程中,sum会重复出现,这对解题很重要!当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法了。

所以这道题目使用哈希法,来判断这个sum是否重复出现,如果重复了就是return false, 否则一直找到sum为1为止

1. 两数之和

链接:https://leetcode.cn/problems/two-sum/

思路:因为本题,我们不仅要知道元素有没有遍历过,还要知道这个元素对应的下标,需要使用 key value结构来存放,key来存元素,value来存下标,那么使用map正合适。

标签:202,哈希,sum,元素,随想录,数组,https,两数,cn
From: https://www.cnblogs.com/elsy/p/17768474.html

相关文章

  • CSP-J/S 2023 游记
    2023-10-16TBXCRound7-J打了场模拟赛,以为自己AK了,结果赛中发现自己是消愁,调完代码后又以为自己AK了,赛后再次发现自己是消愁。半年没写bfs,只会SPFA了/cf总结:数组空间不要开小!......
  • 生活随笔-20231016
        早起,叫醒小非,为他制作了”可颂滑蛋香肠沙拉“,自己准备的可颂未加香肠,非常美味,我俩都吃的津津有味。        小非上学后,按计划完成书本第三章思维导图第一节。    中午继续观看【大明王朝1566】-20~21集晚上下班到家,按计划带小齐来到楼下,让他练......
  • 2023/10/16 辞职当天 自由身
    曾许人间第一流   须知少时凌云志本想和领导争取一下一个月的缓冲期 没想到最后成了我自己的归途还是试用期被辞退了 感性一下:也许来上海就是个错 错误的一面直接就给了offer  错误的选择了上海错误的将自己压注在这家公司上违约来的上海天真的以为早来早学......
  • USACO 2020.12 Platinum Spaceship
    洛谷传送门LOJ传送门考虑剥路径最大值dp,设\(f_{k,i,j}\)为\(i\toj\)中按的最大的按钮\(\lek\)的方案数。转移枚举按下最大值按钮的点\(w\),有:\[f_{k,i,j}=\sum\limits_{(u,w),(w,v)\inE}f_{k-1,i,u}f_{k-1,v,j}\]在外层枚举\(w\),设\(g_i\)......
  • 每日总结20231016
    代码时间(包括上课)3h代码量(行):20行博客数量(篇):1篇相关事项:1、今天是周一,一周里面最容易犯困的一天,但是这次没有那么困,这次还算是学了不少的,今天上的是软件设计模式和人机交互技术。2、软件设计模式这次讲了三种模式,中介者模式、备忘录模式、观察者模式,人机交互技术讲的是盒子模......
  • 2023.10.16
    今天本来都忘了学习网安的东西,结果晚上突然发现今天还没学,去看了一些堆的东西发现ctfwiki堆的知识概述的内容好多,距离真正的应用还有好多感觉是不是应该每天一边刷题一边学堆,这样更有效率一点? ......
  • YACS 2023年9月月赛 甲组 题解
    题目链接1题目链接2题目链接3榜单终于公布了,这应该是第二长的榜单公布吧。(最长的一次是去年八月,拖到九月开始后才公布) T1是傻逼数据结构不说了吧,对于每个点枚举以他为角的$k\timesk$的四个正方形算一下点的数量,用$cdq$或者扫描线都行。看这个题目编号是$81$,看来是很......
  • 【漏洞复现】Apache RocketMQ 代码注入漏洞(CVE-2023-37582)
    产品介绍ApacheRocketMQ是美国阿帕奇(Apache)基金会的一款轻量级的数据处理平台和消息传递引擎。漏洞概述ApacheRocketMQ存在代码注入漏洞,该漏洞源于当NameServer地址在外网泄露且缺乏权限验证时,NameServer组件仍然存在远程命令执行漏洞,在RocketMQ5.1.0及以下版本,在一定......
  • 20231016-日记
    距离CSP还有5天上午-模拟赛总结T1-魔力子串考虑对于每个右端点找到它能匹配的状态,使用前缀和思想以方便统计.这里我们定义"状态"为前缀的各个字母的数量,减去最少得字母数量,经过化简,我们一定可以从前面相同的状态直接转移过来.因此可以开一个巨大的map,里面存的结......
  • 2023跟我一起学docker-swarm 教程:部署篇「上」
    2023跟我一起学docker-swarm教程:部署篇「上」Swarm模式是用于管理一组Docker守护程序的高级功能。ip规划:Manager:Manager:172.16.95.137Node1:172.16.95.138Node2:172.16.95.1391、manager节点初始化swarmdockerswarminit--advertise-addr172.16.95.137输出:dockerswar......