当前位置:网站首页>1. 两数之和
1. 两数之和
2022-08-03 05:09:00 【破烂摆烂人】
LeetCode 1. 两数之和
方法一:暴力枚举
思路:枚举在数组中所有的不同的两个下标的组合,逐个检查他们所对应的数的和是否等于target
public class Solution {
public int[] twoSum(int[] nums, int target) {
int len = nums.length; //数组长度
for(int i=0;i<len-1;i++){
//注意len-1
for(int j=i+1;j<len;j++){
//注意j=i+1,之前的元素不需要再匹配;j<len
if(nums[i]+nums[j]==target){
return new int[]{
i, j}; //返回int[]
}
}
}
return new int[0]; //返回异常或空
}
}
方法二:查找表法-哈希表
思路:数组中的每一个数 x,寻找数组中是否存在 target - x
使用哈希表,可以将寻找 target - x
的时间复杂度降低到从 O(N)降低到 O(1)
创建一个哈希表,对于每一个 x
,首先查询哈希表中是否存在 target - x
,然后将 x
插入到哈希表中,即可保证不会让 x
和自己匹配
public class Solution {
public int[] twoSum(int[] nums, int target) {
/*方法二:查找表法(哈希表)*/
int len = nums.length; //数组长度
HashMap<Integer,Integer> hashMap = new HashMap<>(len-1); //定义哈希表,初始容量
hashMap.put(nums[0],0); //第一个值hash表中没有配对值,直接存放
for(int i=1;i<len;i++){
//注意i=1
int another = target-nums[i]; //获取配对
if(hashMap.containsKey(another)){
//hash表中找到配对值
return new int[]{
hashMap.get(another),i}; //返回i以及配对值的关键字
}
hashMap.put(nums[i], i); //没有配对,存放到哈希表,i+1;
}
return new int[0]; //返回异常或空
}
}
边栏推荐
- Apache DolphinScheduler版本2.0.5分布式集群的安装
- 用户密码加密工具
- typescript42-readonly修饰符
- IO process thread -> thread -> day5
- typescript41-class类的私有修饰符
- 技术分享 | 接口自动化测试中如何对xml 格式做断言验证?
- How to use the interface management tool YApi?Beautiful, easy to manage, super easy to use
- tag单调栈-单调栈预备知识-lt.739. 每日温度
- PotPlayer实现上班摸鱼电视自由
- 社交电商:流量红利已尽,裂变营销是最低成本的获客之道
猜你喜欢
Unity2D horizontal board game tutorial 6 - enemy AI and attack animation
FileZilla 搭建ftp服务器
接口和协议
UV 裂解的生物素-PEG2-叠氮|CAS:1192802-98-4生物素接头
【Harmony OS】【ARK UI】ets use startAbility or startAbilityForResult to invoke Ability
【Harmony OS】【ARK UI】ETS 上下文基本操作
Talking about GIS Data (6) - Projected Coordinate System
刚上线就狂吸70W粉,新型商业模式“分享购”来了,你知道吗?
常见亲脂性细胞膜染料DiO, Dil, DiR, Did光谱图和实验操作流程
安装IIS服务(Internet信息服务(Internet Information Services,简写IIS,互联网信息服务)
随机推荐
Where is the value of testers
unity2D横板游戏教程6-敌人AI以及受击动画
Detailed explanation of MOSN reverse channel
FileZilla 搭建ftp服务器
接口测试 Mock 实战(二) | 结合 jq 完成批量化的手工 Mock
CAD有生僻字如何打出来、如何提交软件相关问题或建议?
Bubble sort in c language structure
C#异步和多线程
自组织是管理者和成员的双向奔赴
Windows 安装PostgreSQL
【生物素叠氮化物|cas:908007-17-0】价格_厂家
shell script loop statement
Get the Ip tool class
【Harmony OS】【FAQ】鸿蒙问题合集1
链动2+1模式简单,奖励结构丰厚,自主裂变?
Harmony OS Date ano UI 】 【 】 the basic operation
Two ways to simulate multi-user login in Jmeter
DFS's complement to pruning
Practical application of WebSocket
【Harmony OS】【ARK UI】ets use startAbility or startAbilityForResult to invoke Ability