LeeCode热题100(两数之和)

本文纯干货,看不懂来打我!

自己先去看一下第一题的题目两数之和. - 力扣(LeetCode)

简单来说就是让你在一个数组里面找两个数,这两个数的和必须满足等于目标值target才行。

我认为你要是没有思路的话,不妨暴力求解(没有暴力解决不了的),然后再看能不能优化一下,对吧。

思路1.暴力穷举法(2层for循环,把所有可能的情况列举出来,时间复杂度O(n^2)):

代码如下:

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] result=new int[2];
        for (int i = 0; i < nums.length; i++) {
            for (int j = i + 1; j < nums.length; j++) {
                if (nums[i] + nums[j] == target) {
                   result[0]=i;
                   result[1]=j;
                   return result;
                }
            }
        }
        return result;
    }
}

由于暴力穷举使得一些数重复被扫描,那么我们能不能减少这种不必要的重复扫描呢?

思路2:借助哈希表(时间复杂度降到O(N))

假设target=20,nums数组的数为:4,6,13,8,7,9

i 先指向第一个数字4

具体步骤:

步骤1:20-4=16,看看哈希表里面有没有16,显然是没有的,那么把4放到哈希表,然后 i++

步骤2:20-6=14,看看哈希表里面有没有14,显然是没有的,那么把6放到哈希表,然后 i++

步骤3:20-13=7,看看哈希表里面有没有7,显然是没有的,那么把13放到哈希表,然后 i++

步骤4:20-8=12,看看哈希表里面有没有12,显然是没有的,那么把8放到哈希表,然后 i++

步骤5:20-7=13,看看哈希表里面有没有13,显然是有的。结束

如果还不明白,请看****VCR

注意:哈希表里面的key是数字,value是数字对应的下标

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer>storeNums=new HashMap<>(nums.length,1);
int[] result=new int[2];
for(int i=0; i<nums.length; i++){
int another=target-nums[i];
Integer anotherIndex=storeNums.get(another);
if(anotherIndex!=null){
    result[0]=anotherIndex;
    result[1]=i;
    break;
}
else storeNums.put(nums[i], i);
}
return result;
    }
}
相关推荐
小七在进步3 分钟前
数据结构:线性表之单链表
c语言·数据结构
MicroTech202516 分钟前
量子隐形传态路线的瓶颈与突破,微算法科技(MLGO)以技术创新助力量子通信长距离组网
科技·算法·量子计算
洛水水16 分钟前
【力扣100题】89.下一个排列
数据结构·算法·leetcode
洛水水17 分钟前
【力扣100题】90.寻找重复数
算法·leetcode·职场和发展
鱼子星_23 分钟前
【数据结构】排序的拓展——快速排序的生态多样性与归并排序沾染文件操作
c语言·数据结构·算法
alphaTao23 分钟前
LeetCode 每日一题 2026/6/8-2026/6/14
算法·leetcode
KaMeidebaby28 分钟前
卡梅德生物技术快报|噬菌体展示文库构建全流程解析 | 大豆球蛋白纳米抗体筛选实践
人工智能·python·tcp/ip·算法·机器学习
kkkAloha34 分钟前
链表解题总结
数据结构·链表
CC数学建模35 分钟前
2026年第十六届APMCM 亚太地区大学生数学建模竞赛(中文赛项)赛题B题:高性能芯片热管理系统的优化问题完整思路、代码、模型、文章,全网首发高质量分享!
python·算法·数学建模
爱睡懒觉的焦糖玛奇朵44 分钟前
【视觉检测之人员奔跑检测算法开发思路】
人工智能·python·深度学习·算法·yolo·视觉检测