代码随想录算法训练营第六天|哈希表理论基础,242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和

刷题建议

刷题建议与debug

  1. 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。
  2. 写博客,将自己的感悟沉淀下来,不然会忘
  3. 大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题,做了哪些调试,而不要只是把代码甩出来,这样方便大家帮忙快速定位问题。

博客内容:(博客记录以及打卡格式)

今日学习文章链接和视频链接

Python菜鸟教程

哈希表理论基础

大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。

  1. hash表(散列表)一般哈希表都是用来快速判断一个元素是否出现集合里
  2. hash函数:通过hashCode把名字转化为数值
  3. hash碰撞:小李和小王都映射到了索引下标 1 的位置,这一现象叫做哈希碰撞,解决方法有线性探测法和拉链法
  4. hash结构:比如字典,集合等()了解原理
  5. 用法:空间换时间,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。
    在这里插入图片描述

242.有效的字母异位词

自己看到题目的第一想法

  1. 暴力破解

看完代码随想录之后的想法

  1. 数组是简单的hash表,这题a-z只有26个字母,可以设置个数组a[0_25]分别的value分别表示a-z出现的次数
  2. 最后遍历数组,如果有a[i]的value不为0,则表示不是字母异位词

自己实现过程中遇到哪些困难

  1. record = [0]*26,忘了列表怎么初始
  2. record[ord(i) - ord(“a”)] += 1 的作用是将字符 i 出现的次数加一,通过将字符映射到 record 列表中的相应位置来实现。这种技巧通常在处理字符串中的字符统计问题时很有用。

相关题目

349. 两个数组的交集

自己看到题目的第一想法

  1. 用数组来hash,遍历nums1,if a[nums1[i]] == 0:a[nums1[i]] += 1
  2. 遍历nums2,if a[nums2[i]] != 0 b[count ++] = [nums2[i]

看完代码随想录之后的想法

  1. 整体思路没错,但是代码处理出现问题
  2. hash结构选择set或者数组,像这种只要一个的用set比较好
  3. 使用数组来做哈希的题目,是因为题目都限制了数值的大小。
  4. 通过这道题,熟悉数组 + 集合

202. 快乐数

自己看到题目的第一想法

  1. 没思路,不知道求和过程咋写

看完代码随想录之后的想法

  1. 明确怎么求和,单独写个函数
  2. 如果sum重复出现,就代表陷入死循环
  3. 怎么判断sum是否重复出现过?==》用set
  4. 题目中说了会 无限循环,那么也就是说求和的过程中,sum会重复出现,这对解题很重要,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法了。

自己实现过程中遇到哪些困难

今日收获,记录一下自己的学习时长

1. 两数之和

自己看到题目的第一想法

  1. 判断对应的target是否在数组里==》hash法
  2. 不清楚用哪个数据结构

看完代码随想录之后的想法

  1. 本题,我们不仅要知道元素有没有遍历过,还要知道这个元素对应的下标,需要使用 key value结构来存放,key来存元素,value来存下标,那么使用map正合适。
  2. 接下来需要明确两点:map用来做什么?map中key和value分别表示什么?
  3. 这道题 我们需要 给出一个元素,判断这个元素是否出现过,如果出现过,返回这个元素的下标。
  4. 那么判断元素是否出现,这个元素就要作为key,所以数组中的元素作为key,有key对应的就是value,value用来存下标。
  5. 遍历数组的时候,只需要向map去查询是否有和目前遍历元素匹配的数值,如果有,就找到的匹配对,如果没有,就把目前遍历的元素放进map中,因为map存放的就是我们访问过的元素。

自己实现过程中遇到哪些困难

  1. 对于数组,set,map这三种数据结构不熟悉,不清楚该用哪个
  2. 具体的思路没有分析出来

今日收获,记录一下自己的学习时长

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

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

相关文章

【工具栏】jclasslib 插件的安装和使用

1. 安装 2.使用 安装之后 在 view 的 ToolWindows 里也有一个这样的窗口 jclasslib 的主要作用是查看字节码的相关信息 package com.test;public class Test {public static void main(String[] args) {Integer a 1;int b a 2;} }例如我写了一段这样的代码,然后去…

蓝凌EIS智慧协同平台 多处SQL注入漏洞复现

0x01 产品简介 蓝凌EIS智慧协同平台是一款专为企业提供高效协同办公和团队合作的产品。该平台集成了各种协同工具和功能,旨在提升企业内部沟通、协作和信息共享的效率。 0x02 漏洞概述 由于蓝凌EIS智慧协同平台 doc_fileedit_word.aspx、frm_form_list_main.aspx、frm_butt…

vcruntime140.dll已加载,但找不到入口点的处理方法分享

当遇到错误提示“vcruntime140.dll已加载,但找不到入口点”时,很多人可能会感到困惑,不知道如何去处理这个问题。不过没有必要紧张,在这里我会为大家详细解释 vcruntime140.dll 文件是什么,并指导大家如何高效地解决 v…

最佳实践:如何在 SoapUI 中进行 REST 服务的测试

SoapUI 频繁地被选择为 SOAP 和 REST API 的自动化测试利器,得益于其友好的用户界面,测试人员毫不费力便可校验 REST 和 SOAP 协议的 Web 服务。它尤其适用于那些需要进行复杂测试的场合。 1、设置接口 我利用了 Swagger 去设置了一批即将投入使用的接…

数字集成系统设计——物理设计

目录 一、布局规划 1.1 规划 1.2 I/O单元 1.3 电源网络 1.3.1 要求 1.3.2 网络架构 1.3.3 混合信号芯片示例 1.4 布局 二、时钟分布 2.1 时钟偏斜 2.2 时钟分布网络 2.3 时钟树综合 2.4 时钟树收敛 三、布线与参数提取 3.1 布线(Routing) 3.2 布线规则示例 …

全球化时代跨境企业协作之道:实用策略与实践分享

全球化时代跨境企业如何更好地异地协作?是许多跨境企业亟待解决的问题。ZOHO作为全球化企业服务品牌,又给出了怎样的答案? Zoho Workdrive企业网盘,为跨境企业提供了一种高效、安全的文件传输和协作方式。 Zoho Workdrive…

对比学习2024最新SOTA&应用方案分享,附14篇必读论文和代码

同学们发现没有,对比学习在我们的日常工作生活中已经很常见了,比如推荐系统任务,为用户推荐相似的商品或预测用户的购买行为;又比如图像检索,为用户找相似图片或识别不同物体。另外还有语音识别、人脸识别、NLP&#x…

C++:cout 的一些注意事项

有时cout不会将结果立即输出到屏幕&#xff08;也就是缓冲&#xff09;&#xff0c;该情况不会对竞赛测评有影响。 例子如下&#xff1a; ps:用puts立即输出 原因&#xff1a; 解决方法&#xff1a;在每一个cout后跟\n或flush cout << "This will be immediately d…

逆矩阵的基本性质(常用)

目录 一、最常用的屠龙公式 二、逆矩阵的一般是出题方式&#xff08;重点&#xff01;&#xff01;&#xff09;判断证明A是否可逆并求出A的逆矩阵 一、最常用的屠龙公式 1、 2、 3、A A |A|E 二、逆矩阵的一般是出题方式&#xff08;重点&#xff01;&#xff01;…

SwiftUI 为任意视图加上徽章(Badge)而想到的(上)

概览 在小伙伴们看来为 SwiftUI 视图添加徽章是一件轻松愉快的“消遣”,几乎不费吹灰之力。但随着需求的升级实现难度可能会“陡然而升”。 从上面演示图中可以看到:无论徽章中的数字是多少、无论徽章采用什么样的偏移方式,徽章的显示都“得体大方、游刃有余”,这是怎么做…

膜结构球形影院为观众打造观影新体验

在数字科技快速发展的当下&#xff0c;轻空间公司打破传统影院的束缚&#xff0c;领航未来娱乐体验的创新浪潮。膜结构球形影院问世&#xff0c;它不仅仅是一个娱乐场所&#xff0c;更是一场極致沉浸感的感官之旅&#xff0c;为观众带来震撼性的视听冲击。 沉浸式体验的新纪元 …

JDBC PrepareStatement 的使用(附各种场景 demo)

在 Java 中&#xff0c;与关系型数据库进行交互是非常常见的任务之一。JDBC&#xff08;Java Database Connectivity&#xff09;是 Java 平台的一个标准 API&#xff0c;用于连接和操作各种关系型数据库。其中&#xff0c;PreparedStatement 是 JDBC 中的一个重要接口&#xf…

护眼灯有蓝光吗?没有蓝光的护眼灯推荐

现在的家长对于孩子的学习还是十分重视的&#xff0c;不仅会选择给他们报各种补习班、兴趣班&#xff0c;在学习设备方面也是尽可能地提供最好的&#xff0c;不管是各种文具还是良好的用光环境。为了拥有良好的光线条件&#xff0c;保护好孩子们的稚嫩的眼睛&#xff0c;他们会…

强化学习应用(一):基于Q-learning的无人机物流路径规划研究(提供Python代码)

一、Q-learning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于马尔可夫决策过程&#xff08;MDP&#xff09;的问题。它通过学习一个价值函数来指导智能体在环境中做出决策&#xff0c;以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的…

C语言——(printf和scanf介绍)

一.printf 1.基本用法 printf&#xff08;&#xff09;的作用是将参数文本输出的屏幕。如下&#xff1b; 2.占位符 printf&#xff08;&#xff09;可以在输出文本中指定占位符 &#xff0c;“占位符”&#xff0c;也就是这个位置可以用其他值代入。 如&#xff1a; …

基于 IDEA 创建 Maven 的 Java SE 工程和 Java Web 工程

一、概念简介 Maven 工程相对之前的项目&#xff0c;多出一组 gavp 属性&#xff0c;gav 需要我们在创建项目的时候指定&#xff0c;p 有默认值&#xff0c;我们先行了解下这组属性的含义。 Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写&am…

刚买的助听器就弄丢了,不想白配,快来看看这8大助听器防丢小技巧

我们知道助听器可以让听损人士重新听到美妙的声音和享受沟通的乐趣。但是&#xff0c;助听器也是一种很贵的物品&#xff0c;如果不小心弄丢了&#xff0c;就会让人心痛不已。 更有甚者&#xff0c;有些人因为害怕丢失助听器&#xff0c;而不敢佩戴助听器&#xff0c;错过了听力…

解决Windows11 “我们无法设置移动热点”

目录 问题复现解决办法①启动网络适配器②打开移动热点③共享网络连接④连接移动热点总结 问题复现 因为交换机上网口限制&#xff0c;开发环境暂时没有WIFI设备&#xff0c;只有一根网线和一台笔记本电脑。于是开启笔记本电脑的WiFi共享服务。结果提示 “我们无法设置移动热点…

7-35 有理数均值 分数 20

每日一言 我们把世界看错&#xff0c;反说它欺骗了我们。 --飞鸟集 题目 本题要求编写程序&#xff0c;计算N个有理数的平均值。 输入格式&#xff1a; 输入第一行给出正整数N&#xff08;≤100&#xff09;&#xff1b;第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的…

应急管理蓝皮书 |《应急预案数字化建设现状和发展建议》下篇

导读 《应急预案数字化建设现状和发展建议》&#xff1a;297-313页 《中国应急管理发展报告》系列蓝皮书由中央党校&#xff08;国家行政学院&#xff09;应急管理培训中心&#xff08;中欧应急管理学院&#xff09;联合社会科学文献出版社研创出版&#xff0c;本着“权威前沿…