代码随想录算法训练营二刷第19天 | 哈希表——set完结、部分map

set作为哈希表

202.快乐数

快乐数是重复 将一个正整数的每个位置上的数字的平方和替换为它自身,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。

在这个重复替换的过程中,如何判断这个数进入了无限循环呢?也就是说:进入无限循环以后,某个数会重复出现,因此,要判断是否会出现无限循环,也就是要判断在这个替换的过程中某个数 是否会重复出现,因此必要用到哈希表

同时这道题考察了如何求出一个整数的每个位上的值!这属于C++基础-查漏补缺中的内容!

map作为哈希表

1.两数之和

题目要求:在给定一个整数数组 nums 中找到 相加等于目标值 target的那 两个 整数,并返回它们的数组下标。

本题其实就是:查询在一个数组中是否出现了另一个与当前遍历的元素匹配的元素,如果出现了,则返回其下标。因此,这就涉及到了哈希表!

遍历,查询哈希表中是否出现过target-nums[i],若未出现,则将当前数值存放到哈希表中,由于返回的是下标值,因此将target-nums[i]作为key值,下标值作为value值,最后返回即可!

(~)454.四数相加Ⅱ

题目给定4个长度均为n的整数数组,在每个数组中各选一个元素,使得四数相加等于0。

本题的暴力解法为n^4,并非最优的。

这道题目是四个独立的数组,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以,不用考虑有重复的四个元素相加等于0的情况。

本题为什么会想到哈希表法呢?首先是因为A[i] + B[j] + C[k] + D[l] = 0具有一定的匹配关系,并且不需要考虑去重的问题,要在一个数组B中找到与另一个数组A有关的元素,就涉及到了哈希表。本题与有效的字母异位词或者 两个数组的交集是跟相似的,都是要寻找两个不同的字符串/数组直接具有匹配关系的元素/个数

本题解题步骤:

  1. 首先定义 一个unordered_map,key放a和b两数之和,value 放a和b两数之和出现的次数。
  2. 遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。
  3. 定义int变量count,用来统计 a+b+c+d = 0 出现的次数。
  4. 在遍历大C和大D数组,找到如果 0-(c+d) 在map中出现过的话,就用count把map中key对应的value,也就是出现次数统计出来。
  5. 最后返回统计值 count 就可以了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【负载均衡式在线OJ项目day1】项目结构

一.功能 查看题目列表,在线编程,判题功能,即leetcode的部分功能 二.宏观结构 整个项目是BS模式,客户端是浏览器,和用户交互并向服务器发起请求。 服务端从功能上来说分为两个模块,第一个是OJServer&…

FFmpeg———encode_video(学习)

目录 前言源码函数最终效果 前言 encode_video:实现了对图片使用指定编码进行编码,生成可播放的视频流,编译时出现了一些错误,做了一些调整。 基本流程: 1、获取指定的编码器 2、编码器内存申请 3、编码器上下文内容参数设置 4、…

平平科技工作室-Python-超级玛丽

一.准备图片 放在文件夹取名为images 二.准备一些音频和文字格式 放在文件夹media 三.编写代码 import sys, os sys.path.append(os.getcwd()) # coding:UTF-8 import pygame,sys import os from pygame.locals import* import time pygame.init() # 设置一个长为1250,宽为…

03.配置监控一台服务器主机

配置监控一台服务器主机 安装zabbix-agent rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.11-1.el7.x86_64.rpm配置zabbix-agent,配置的IP地址是zabbix-server的地址,因为要监控这台主机 vim /etc/zabbix/zab…

淘宝线上扭蛋机小程序:推动扭蛋机销量

扭蛋机作为一个新兴的娱乐消费模式,能够带给消费者“盲盒式”的消费乐趣,正在快速发展中。消费者通过投币、扫码支付等,在机器上扭下按钮就可以随机获得一个扭蛋商品,这些商品也包括动漫衍生周边、IP主题商品等,种类多…

先电2.4的openstack搭建

先电2.4版本的openstack,前期虚拟机部署参考上一篇2.2版本,基本步骤是一样的,准备两个镜像文件CentOS-7.5-x86_64-DVD-1804.iso,XianDian-IaaS-V2.4.iso [rootcontroller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777…

新手开抖店多久可以出单?做好这两点!七天必出单!

哈喽~我是电商月月 很多新手开抖店长时间不出单,觉得不正常,害怕新手根本做不起来店,就会搜索:新手开抖店多久可以出单? 新手开店,合理运营的话,七天里肯定是能出几单的,但没做好的…

AI新突破:多标签预测技术助力语言模型提速3倍

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! 引言:多标签预测的新视角 在人工智能领域,尤其是在自然语言处理(NLP)中,预测模型的训练方法一直在…

Android(一)

坏境 java版本 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 进入安卓官网下载 勾选协议 next 如果本地有设置文件,选择Config or installation folder 如果本地没有设置文件,选择Do not import settings 同意两个协议 耐…

Android 14 init进程解析

前言 当bootloader启动后,启动kernel,kernel启动完后,在用户空间启动init进程,再通过init进程,来读取init.rc中的相关配置,从而来启动其他相关进程以及其他操作。 init进程启动主要分为两个阶段&#xff1…

张大哥笔记:卖盗版网课,获利 100 万被抓

这几天刷视频,看到一个新闻,某大学生卖盗版网课,把别人2000多正版网课,以做活动名义售卖20元,获利100多万被抓。 下方图片来自:极目新闻 卖这种盗版网课,门槛低,成本低,…

win中python中OpenCV使用cv2.imshow()报错的解决办法

1. 问题 cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1272: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK 2.x or Cocoa support. If you are on Ubuntu o…

Python实现SMA黏菌优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 黏菌优化算法(Slime mould algorithm,SMA)由Li等于2020年提出&…

汉之名将韩信

与英勇霸气的项羽相比,刘邦或许显得无能猥琐,但刘邦深知自己的不足,愿意放权给跟随他的人,让他们发挥才能。正是这种谦逊和智慧,最终让刘邦赢得了天下。 帷帐之间筹谋,千里之外决胜,我之子房无…

计算机服务器中了halo勒索病毒怎么处理,halo勒索病毒解密流程步骤

在网络技术飞速发展的时代,越来越多的企业走向了数字化办公模式,利用网络可以开展各项工作业务,网络也为企业的生产运营提供了极大便利,但网络是一把双刃剑,从网络出现就一直存在网络数据安全问题,这也是众…

Essential Input and Output

How to read data from the keyboard? How to format data for output on the screen? How to deal with character output? 一、Input from the Keyboard the scanf_s() function that is the safe version of scanf() int scanf_s(const char * restrict format, ... );…

电子电器架构 --- 主机厂产线的两种刷写方法

电子电器架构 — 主机厂产线的两种刷写方法 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证…

【Django学习笔记(六)】MySQL的安装配置、启动关闭操作

MySQL的安装配置、启动关闭操作 前言正文1、初识网站1.1 实现静态网站与动态网站效果1.2 数据存储方式 2、MySQL的安装和配置2.1 MySQL下载2.2 安装补丁2.3 安装MySQL2.4 创建配置文件2.5 初始化 3、MySQL的启动和关闭4、MySQL连接测试4.1 MySQL 的连接方式4.2 使用 MySQL自带工…

【muduo源码学习】源码分析之Channel、EventLoop和Selector

在 one-loop-per-thread核心原理 中,介绍了 one loop per thread 网络模型的核心原理,在本篇本章中,我将重点介绍该模型中的IO事件处理部分在 muduo 网络库中是如何实现的,而涉及 TCP 连接处理部分,也即 socket 编程部…

群发邮件软件哪个好

选择一个好的群发邮件软件取决于您的具体需求,如预算、邮件量、自动化需求、分析深度以及是否需要集成其他营销工具等。以下是一些评价较高且功能强大的群发邮件软件,您可以根据自身情况选择: 易邮件群发大师:一款传统使用最广泛的…
最新文章