【LeetCode 0170】【哈希】两数之和(3) 数据结构设计

https://leetcode.com/problems/two-sum-iii-data-structure-design/

描述

Design and implement a TwoSum class. It should support the following operations: add and find.
add(input) – Add the number input to an internal data structure.
find(value) – Find if there exists any pair of numbers which sum is equal to the value.
For example

add(1); add(3); add(5); 
find(4) // true; 
find(7) // false
题解
  • 暴力法(哈希+数组):计算每一对数字之和放入hashmap,O(n2)个存储空间,同时需要记住已经加入的N个数字,add时,需要与每个已加入的数字做加法存入hashmap,find时,只需要O(1)时间复杂度
  • 二分插入+双指针:保持已经插入的数字有序,add时查找插入位置插入,find时使用双指针O(n)时间复杂度
  • 高效哈希法,只需要存储所有插入的数字,为插入数据为key,次数为value(注意哈希中存在多个相同的数字)
function TwoSum(){this.hashmap = {};
}
TwoSum.prototype.add = function(e){if(null == this.hashmap[e]){this.hashmap[e] = 1;}else{this.hashmap[e] ++;}
}
TwoSum.prototype.find = function(sum){for(let current in this.hashmap){let antoher = sum-current ;if(antoher == current && this.hashmap[current] > 1){//存在 多个相同的valuesreturn true;}else if(null != this.hashmap[antoher]){// 存在不同的2个数字之和为sumreturn true}}return false
}

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

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

相关文章

力扣 --- 加油站

题目描述: 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个…

126. 单词接龙 II

126. 单词接龙 II 需要注意的是,由于要找最短路径,连接 dot 与 lot 之间的边就不可以被记录下来,同理连接 dog 与 log 之间的边也不可以被记录。这是因为经过它们的边一定不会是最短路径。因此在广度优先遍历的时候,需要记录的图…

ROS话题消息实时展示在WEB网页上

【使用背景】 最近公司搞了一个室外无人车的项目,需要用到GPS组合惯导,但是这套传感器由于成本控制,它没有提供小程序或是APP之类的数据监测手段,只能通过一个Windows上位机软件去看GPS实时数据,这对于单人外场调试来…

环保与节能:气膜建筑的独特魅力

在当今社会,环保和节能已经成为建筑设计和发展的关键考量因素。气膜建筑以其独特的设计和结构,成为了绿色建筑的杰出代表。接下来由轻空间带您了解气膜建筑的环保与节能特性,揭示其在可持续发展中的独特魅力。 轻巧材料,绿色环保 …

mysql语句性能分析工具——profiling

以往我们已经介绍了一个mysql的分析工具:mysql慢查询日志分析工具(pt-query-digest),可以看我的文章:mysql慢查询日志分析工具(pt-query-digest)-CSDN博客 一、profiling的介绍 sql查询慢的情况很常见,对…

Linux:docker的网络通信(7)

1.端口映射 端口映射---端口映射机制将容器内的服务提供给外部网络访问 启动容器时,不指定对应的端口,在容器外无法通过网络访问容器内的服务 可随机或指定映射端口范围 -P ---------大写P,开启随机端口 -p 宿主机端口:容器端口…

金蝶Apusic应用服务器 任意文件上传漏洞复现

0x01 产品简介 金蝶Apusic应用服务器(Apusic Application Server,AAS)是一款标准、安全、高效、集成并具丰富功能的企业级应用服务器软件,全面支持JakartaEE8/9的技术规范,提供满足该规范的Web容器、EJB容器以及WebSer…

PHPExcel 导出Excel报错:PHPExcel_IOFactory::load()

背景 近期在做 excel文件数据导出时,遇到如下报错: iconv(): Detected an illegal character in input string场景:计划任务后台,分步导出 大数据 excel文件发现在加载文件时,会有报错 报错信息 如下: {&q…

振南技术干货集:各大平台串口调试软件大赏(5)

注解目录 (串口的重要性不言而喻。为什么很多平台把串口称为 tty,比如 Linux、MacOS 等等,振南告诉你。) 1、各平台上的串口调试软件 1.1Windows 1.1.1 STCISP (感谢 STC 姚老板设计出 STCISP 这个软件。&#xf…

【代码】两阶段鲁棒优化/微电网经济调度入门到编程

内容包括 matlab-yalmipcplex微电网两阶段鲁棒经济调度(刘) matlab-yalmipcplex两阶段鲁棒微电网容量经济优化调度 两阶段鲁棒优化CCG列于约束生成和Benders代码,可扩展改编,复现自原外文论文 【赠送】虚拟储能单元电动汽车建…

VsCode 调试 MySQL 源码

1. 启动 MySQL 2. 查看 MySQL 进程号 [root ~]# ps -ef | grep mysqld root 21479 1 0 Nov01 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir/usr/local/mysql/data --pid-file/usr/local/mysql/data/mysqld.pid root 26622 21479 0 …

上拉、下拉电阻的作用

上拉、下拉电阻的作用 (1)一般作为单键触发使用,如果芯片本身没有内接电阻,为了使单键维持在不被触发的状态或触发后回到原状态,必须在芯片外部接一个电阻,即保持芯片引脚高电平(或低电平)输入,这样单击按键…

注解原理是什么 Spring MVC常用的注解有哪些?

文章目录 注解原理是什么Spring MVC常用的注解有哪些? 通过这篇文章来和大家一起认识springMVC常用的注解,那么首先需要来了解注解。 注解原理是什么 注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类。…

2023认证杯小美赛数学建模国际赛ABCD题思路及python代码分享

大家好呀,认证杯小美赛数学建模开始了,来说一下初步的选题建议吧: 首先定下主基调, 本次小美赛难度:D<A≈C<B。推荐选择D题。预计12.2中午更新D完整论文。预定论文请往后滑看完本文档链接。 A…

Apache2.4 AliasMatch导致301重定向问题?

环境:ubuntu18.04-desktop apache2版本: rootubuntu:/etc/apache2# apache2ctl -v Server version: Apache/2.4.29 (Ubuntu) Server built: 2023-03-08T17:34:33apache配置: DocumentRoot /var/www/html # Alias就没事 # Alias "/my…

原生JS实现计算器(内含源码)

前言 本文主要讲解如何用纯前端制作计算器,并且可以利用鼠标点击、键盘监听、键盘连续键监听实现加减乘除、delete、计算结果、清除全部数字等功能。那么好文本正式开始。 布局和样式流程 首先是HTMLCSS结构:这里主要用到的是position定位和Flex布局…

Android Studio - 显示配置

1.修改 Code / Split / Design(代码视图 & 效果视图) 路径:Settings→Editor→Design Tools。 2.增加打开文件的数量及展示方式 路径:Settings→Editor→General→Editor Tabs。

跨境电商平台的社会责任:可持续经营的路径

随着全球化的不断推进,跨境电商平台在国际贸易中扮演着越来越重要的角色。然而,这一行业的蓬勃发展也伴随着一系列社会和环境问题,使得跨境电商平台不得不正视并履行社会责任。在追求商业成功的同时,平台如何走上一条可持续经营的…

解决VS2019和VS2022项目兼容性问题

近期,我遇到了一个问题,我使用的项目在VS2019中开发,但在被VS2022打开之后,再次在VS2019中打开该项目时,却出现了兼容性问题。在本篇博客中,我将分享解决这个问题的方法。 问题描述 在使用VS2019开发的项…

【网络安全】用永恒之蓝(Eternal blue)测试windows系统的安全性

一、kali默认账户和密码都为kali 攻击机:Linux 的 kali 目标机:Windows7 x64 二、kali、metasploit、metasploit 攻击 windows操作系统、metasploit 攻击 永恒之蓝 全流程 ①kali:是黑客攻击机。开源免费的Linux操作系统,含有300…