【LeetCode】升级打怪之路 Day 06:哈希表的应用

今日题目:

  • 349. 两个数组的交集 | LeetCode
  • 202. 快乐数 | LeetCode
  • 1. 两数之和 | LeetCode
  • 205. 同构字符串 | LeetCode
  • 599. 两个列表的最小索引总和 | LeetCode

目录

    • 应用 1 -- 哈希集合
      • LeetCode 349. 两个数组的交集 【easy】
      • LeetCode 202. 快乐数 【小技巧】
    • 应用 2 -- 哈希映射 之 构造哈希表
      • LeetCode 1. 两数之和 【classic】
      • LeetCode 205. 同构字符串 【easy】
      • LeetCode 599. 两个列表的最小索引总和 【easy】

今天的题目也不难,主要学习了使用 HashSet 和 HashMap 来解决一些需要查重或记录 kv 映射关系的问题

应用 1 – 哈希集合

哈希集合主要用来查重

LeetCode 349. 两个数组的交集 【easy】

349. 两个数组的交集 | LeetCode

经典的使用 HashSet 来解决问题的题目,较简单。

LeetCode 202. 快乐数 【小技巧】

202. 快乐数 | LeetCode

这个题需要从题干的“无限循环”中推导出可能会有重复循环,进而想到使用 HashSet 来避免一直死循环的问题。

我一开始就没想到这点,导致有点不知道怎么下手。

应用 2 – 哈希映射 之 构造哈希表

什么情况下会想到使用哈希表呢?当我们需要同时得到关联信息时,可以使用哈希表建立 key 与 value 的映射关系。我们需要通过分析题目的相关因素之间的关系,为 key 和 value 选择合适的数据类型。

常见的 key 与 value 的关系有:

  • key -> 下标:比如两数之和题目,需要通过一个数字找出它在数组中的下标。
  • key -> 频次:用于统计使用频率最高的元素
  • key -> 数组:如果一个键对应的信息是一组元素,可使用数组或链表存储。
  • key -> 平面坐标:某些矩阵类习题可能会存储坐标;
  • key -> 其他:一般出现在模拟题中,根据实际需要设计哈希表。

LeetCode 1. 两数之和 【classic】

1. 两数之和 | LeetCode

经典问题了,使用 key -> 下标 形式的哈希映射可以轻松解决。

LeetCode 205. 同构字符串 【easy】

205. 同构字符串 | LeetCode

需要同时使用 HashMap 和 HashSet 用于记录映射关系和查重,题目较容易。

LeetCode 599. 两个列表的最小索引总和 【easy】

599. 两个列表的最小索引总和 | LeetCode

这也是考察对利用 HashMap 来记录 key -> index 关系的一个题目,较为简单。

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

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

相关文章

基于JSP的毕业设计选题系统的设计与实现

基于JSP的毕业设计选题系统的设计与实现 (源代码论文) A. 项目简介 毕业设计选题系统就是能够使学生通过互联网完成毕业设计课题的选定,它采用Web方式,同时适用于局域网和Internet,它要实现审核,权限管理,邮件通知…

Python中的atexit模块:优雅地处理程序退出

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站AI学习网站。 目录 前言 atexit模块概述 atexit模块的基本用法 示例代码:文件操作时的应用场景 典型应用场景 1 资源释放…

【Java】Deque接口与List接口中的remove方法

Deque接口与List接口中的remove方法的区别 太长不看系列: Deque的remove(Object o)。指定的是元素,List的remove(int index),指定的是索引。 在刷力扣113.路径总和 II 时使用Deque的remove方法出现错误,记录一下原因和理清相关概念…

云里物里轻薄系列电子价签,如何革新零售?

云里物里的DS轻薄系列电子价签,凭借轻巧外观和强劲性能,为零售行业提供了更便捷的商品改价方案。这不仅是对纸质价标的替代,更以其安全性和可持续发展性,实现对零售行业的效率升级,让商家们轻松迎接数字化时代的挑战&a…

【Vue3】学习watch监视:深入了解Vue3响应式系统的核心功能(下)

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

OD(9)之Mermaid序列图(Sequence diagrams)使用详解

OD(8)之Mermaid序列图(Sequence diagrams)使用详解 Author: Once Day Date: 2024年2月21日 漫漫长路才刚刚开始… 全系列文章可参考专栏: Mermiad使用指南_Once_day的博客-CSDN博客 参考文章: 关于 Mermaid | Mermaid 中文网 (nodejs.cn)Mermaid | Diagramming and charti…

C++实现Date类

Date.h #pragma once#include <iostream> using std::cout; using std::endl;class Date { private:int _year 1;int _month 1;int _day 1;public://日期类无需显式定义拷贝构造函数、析构函数、赋值运算符重载//打印void Print();//有参构造函数Date(int year 1, i…

4.4 MySQL存储

目录 1、使用前提 2、使用连接数据库最初步骤 2.1 最初步骤 2.2 connect()方法中参数简单传递 3、创建数据库(创建架构)和创建表 3.1 创建数据库(创建架构) 3.2 创建表 3.2.1 基本创建 3.2.2 创建自增主键 4、Pycharm 可视化连接 MySQL 图形界面 5、插入、更新、查询…

【蓝桥杯】青蛙跳杯子(BFS)

一.题目描述 二.输入描述 输入为 2 行&#xff0c;2 个串&#xff0c;表示初始局面和目标局面。我们约定&#xff0c;输入的串的长度不超过 15。 三.输出描述 输出要求为一个整数&#xff0c;表示至少需要多少步的青蛙跳。 四.问题分析 注意&#xff1a;空杯子只有一个 …

3种SQL语句优化方法,测试人必知必会!

关于SQL语句的优化&#xff0c;本质上就是尽量降低SQL语句的执行时间&#xff0c;对于如何降低SQL语句的执行时间&#xff0c;可以从以下几个方面入手。 一、降低SQL语句执行时的资源消耗 这是我们在数据库性能调优中常用的方法&#xff0c;该方法以分析SQL语句的执行计划为切…

Qt程序设计-报警灯自定义控件实例

本文讲解Qt报警灯自定义控件实例。 实现功能 设置边框和内部颜色。 设置是否闪烁点亮。 添加的报警灯类 #ifndef LIGHT_H #define LIGHT_H#include <QWidget> #include <QDebug> #include <QPainter> #include <QTimer>class Light : public QWid…

Python实用技巧:处理JSON文件写入换行问题

Python实用技巧&#xff1a;处理JSON文件写入换行问题 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望得到您的订阅…

linux中将普通用户添加sudo权限

1.登录root权限账号&#xff0c;编辑/etc/sudoers文件 2.找到"root ALL(ALL) ALL"&#xff0c;并在下面添加普通用户 格式&#xff1a;username ALL(ALL) ALL vim /etc/sudoers ## Next comes the main part: which users can run what software …

理解大数据处理过程中的小文件问题

相信很多开发都知道这个问题&#xff0c;看文章&#xff0c;看博客都有了解过。但是如果让你自己讲&#xff0c;能不能从头到尾讲明白原理和对应的解决方案呢&#xff1f; 这个小文件是怎么产生的&#xff1f;就一句话&#xff0c;spark处理完数据输出时&#xff0c;一个分区一…

CMake和VsCode调试的使用

目录 CMake使用 CMake下载 创建系统文件目录 MakeList编写规范 VsCode启动调试 添加配置文件 添加断点&#xff0c;启动调试 CMake使用 CMake下载 输入指令 sudo apt install cmake 安装cmake&#xff0c;使用 cmake -version可查看cmake的版本信息 创建系统文件目…

土耳其商务团一行莅临优积科技考察交流

7月31日土耳其商务代表Emre Arif Parlak等一行三人莅临优积科技考察交流&#xff0c;公司CEO刘其东携团队成员热情接待并深入交流。 商务团首先参观了我司产品生产基地&#xff0c;详细了解了钢结构模块的生产加工工艺流程和质量控制体系。随后参观了我司模块化学校样板房、模块…

Python-语句

一、if语句 格式 if 条件&#xff1a; 条件成立执行的代码 if True:print(条件成立执行的代码) print(这个代码执行吗?)上述代码两个print均执行 if False:print(条件成立执行的代码) print(这个代码执行吗&#xff1f;)只执行第二个print 2.总结 对于未缩进的代码&#x…

Git+py+ipynb Usage

0.default config ssh-keygen -t rsa #之后一路回车,当前目录.ssh/下产生公私钥 cat ~/.ssh/id_rsa.pub #复制公钥到账号 git config --global user.email account_email git config --global user.name account_namebug of ipynb TqdmWarning: IProgress not found. Please …

Springboot日常总结-@RestController和@Controller的区别

RestController和 Controlle是两种不同的控制器实现&#xff0c;它们的主要区别在于如何处理返回的数据和是否支持跳转到视图页面。 Controller 是一个基本的控制器注解&#xff0c;它允许你将一个类标记为一个Spring MVC控制器处理器。使用 Controller 的类中的方法可以直接返…

c++学习记录 string容器—字符串比较

比较方式&#xff1a; 字符串比较是按照字符的ASCII码进行对比 返回 0> 返回 1< 返回 -1 函数原型&#xff1a; int compare(const string& s) const; //与字符串s比较int compare(const char* s) const; //与字符串s比较 #include<iostream> using name…