leetcode170. 两数之和 III - 数据结构设计
设计并实现一个 TwoSum 的类,使该类需要支持 add 和 find 的操作。
add 操作 - 对内部数据结构增加一个数。
find 操作 - 寻找内部数据结构中是否存在一对整数,使得两数之和与给定的数相等。
示例 1:
add(1); add(3); add(5);
find(4) -> true
find(7) -> false
示例 2:
add(3); add(1); add(2);
find(3) -> true
find(6) -> false
在列表有序的情况下,可以使用双指针,时间为O(N),插入一个数字的时间为O(N)。
可以使用哈希表,查找的时间为O(N),插入时间为O(1)。
两种方法空间都是O(N)。
综上所述,没有排序的列表没有必要为了解题去排序。
设计此数据结构时,也是使用哈希表最好。
import java.util.HashMap;class TwoSum {private HashMap<Integer, Integer> countsMap;/** Initialize your data structure here. */public TwoSum() {countsMap = new HashMap<Integer, Integer>();}/** Add the number to an internal data structure.. */public void add(int number) {if (countsMap.containsKey(number))countsMap.replace(number, countsMap.get(number) + 1);elsecountsMap.put(number, 1);}/** Find if there exists any pair of numbers which sum is equal to the value. */public boolean find(int value) {for (Map.Entry<Integer, Integer> entry : countsMap.entrySet()) {int key = value - entry.getKey();if ((key == entry.getKey() && entry.getValue() > 1)|| (key != entry.getKey() && countsMap.containsKey(key))) {return true;}}return false;}
}/*** Your TwoSum object will be instantiated and called as such:* TwoSum obj = new TwoSum();* obj.add(number);* boolean param_2 = obj.find(value);*/
leetcode170. 两数之和 III - 数据结构设计相关推荐
- LeetCode 170. 两数之和 III - 数据结构设计(哈希map)
文章目录 1. 题目 2. 解题 1. 题目 设计并实现一个 TwoSum 的类,使该类需要支持 add 和 find 的操作. add 操作 - 对内部数据结构增加一个数. find 操作 - 寻找 ...
- 力扣(leetcode)-1. 两数之和
描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组 ...
- 【leetcode】 算法题1 两数之和
[leetcode] 算法题1 两数之和 问题 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums ...
- LeetCode 01两数之和02两数相加
力扣 LeetCode01两数之和 LeetCode02两数之加 前言:第一次LeetCode打卡题解,前面组织的打卡活动从今天开始正式开始了,很多csdn和公众号小伙伴以及加入了,欢迎加入!详细看力 ...
- LeetCode刷题-两数之和(持续更新)
文章目录 LeetCode 1. Two Sum (两数之和) 题目描述 样例 解题思路一(暴力法) 解题思路二(使用map) 前言:最近业余时间,一直在看LeetCode上面的题,上面有许多好的解题 ...
- LeetCode 01. 两数之和
原题 分析: 1.根据题意,首先需要将要数据选择一个合适的 数据结构模型. 因为是对应相关联,所以我们选择unordered_map 2.因为是一组数,所以用数组 ,将数值与数组下标对应起来 3.已 ...
- python的return语句求两数之和_程序题(python解)
PyCharm整理代码:Ctrl+Alt+l list行数:len(list) list列数:len(list[1]) 笔试常使用到的功能: 1.单独取出一长串字符中每个单独的字符: 输入'abcd' ...
- LeetCode题库整理【Java】—— 1两数之和
LeetCode题库整理[Java] 1.两数之和 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nu ...
- java 两数之差_1_两数之和(java)
两数之和 问题描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一 ...
最新文章
- 面向对象的JavaScript编程
- java.lang.String_自己写的java.lang.String可以让jvm加载到吗?
- 一个不错的CSS DIV布局,DIV高度自适应
- 命令行下操作MySQL数据库,各种命令的使用入门示例。(附图)
- c语言怎么编程dll,【C语言】编写的DLL注入工具
- 启动hbase后hregionserver没有启动
- Toast.makeText(MainActivity.this, R.string.alert, Toast.LENGTH_SHORT).show(); 解释
- Android.mk文件官方使用说明
- 完全自定义TabBar(八)
- Mac切换英文大写,不能锁定,该如何解决
- 华为路由器第三方插件_为什么路由器不开 SSH 就等于失去了很多乐趣?
- 《数据挖掘概念与技术》学习笔记
- mysqld: [ERROR] Found option without preceding group in config file my.ini at line 1
- Apple个人开发者账号相关问题
- [附源码]Python计算机毕业设计Django大学生考勤管理系统论文
- python实现树莓派监控_树莓派上安装pyaudio 及 对声音实时监控
- 【电脑问题】win10系统
- .NET Core 用 Blazor 做 jmeter 系列视频
- Hive Full Join多个表与Union All多个表
- 计算机安装系统有哪些东西,重装系统电脑里的东西还有吗|电脑重装系统后原来的东西还在吗...
热门文章
- 基于python的个人博客系统的设计开题报告_个人博客设计实现开题报告
- python dataframe删除重复行_详解pandas使用drop_duplicates去除DataFrame重复项参数
- wordl流程图怎么写字_DLG的制作流程图
- 为Ubuntu安装build-essential软件包
- uniapp开发实例github_跨端开发痛点?送你一款Vue最流行的跨端框架——uni-app
- 【转】mysql 、oracle中char和varchar以及varchar2的区别
- iis到w3wp的数据流及工作原理
- mysql 第二大的数据_MYSQL – 从大表中的第二行中选择数据
- 正则表达式:匹配非0的整数和小数Double
- 死锁编码及定位分析(故障排查)