当前位置:网站首页>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]; //返回异常或空
}
}
边栏推荐
猜你喜欢
【Harmony OS】【FAQ】Hongmeng Questions Collection 1
【HMS core】【Ads Kit】Huawei Advertising——Overseas applications are tested in China. Official advertisements cannot be displayed
typescript43-类型兼容性说明
修饰生物素DIAZO-生物素-PEG3-DBCO|重氮-生物素-三聚乙二醇-二苯基环辛炔
测试人员的价值体现在哪里
力扣561. 数组拆分
【Harmony OS】【ARK UI】Date 基本操作
unity2D横板游戏教程6-敌人AI以及受击动画
Shell条件语句判断
在树莓派上搭建属于自己的网页(2)
随机推荐
链动2+1模式简单,奖励结构丰厚,自主裂变?
【Harmony OS】【ArkUI】ets开发 基础页面布局与数据连接
MOSN 反向通道详解
Harmony OS Date ano UI 】 【 】 the basic operation
设计模式——组合模式、享元模式(Integer缓存)(结构型模式)
UV 裂解的生物素-PEG2-叠氮|CAS:1192802-98-4生物素接头
多肽介导PEG磷脂——靶向功能材料之DSPE-PEG-RGD/TAT/NGR/APRPG
MySQL 出现 The table is full 的解决方法
业务表解析-余额系统
CobalStrike(CS)基础超级详细版
Install PostgreSQL on Windows
力扣561. 数组拆分
odps的临时查询能在写sql的时候就给结果一个命名不?
js实现一个 bind 函数
自组织是管理者和成员的双向奔赴
VR全景展打造专属元宇宙观展空间
索引创建、删除与使用
接口测试框架实战 | 流程封装与基于加密接口的测试用例设计
打破传统电商格局,新型社交电商到底有什么优点?
【Harmony OS】【ARK UI】轻量级数据存储