LeetCodeHot100——1.两数之和(详细解答)

我接下来要为大家分享一下我对于算法题目的理解,希望与大家交流,提升自己的算法能力,欢迎大家一起来交流。

题目链接在这里:1. 两数之和 - 力扣(LeetCode)

这个题暴力的解法是非常简单的,作为一道入门题目,我们只需要进行一次循环附加一次内循环,外层负责遍历,内层负责再次遍历寻找是否有值满足内外层指定的两个值之和是否等于target就好了。

但是这种解法过于简单,没法体现我们的code能力,所以我为大家介绍下面这种解法:

我们想一想我们的主要思想就是要查找两个值,和为target的两个值,对于查找而言,我们最常见的最好用的数据结构就是HashMap了,两次循环我们可以把它变成一次搭配HashMap进行配对查找,循环遍历外层的同时,同时向HashMap中添加元素和对应的下标,答案是两个值,在遍历到第一个值的时候我们直接将它放入map中,因为在每次遍历的时候我们都会检查之前进入到Map里的值有没有我们想要的,也就是和当前遍历到的值相加等于target的(map中存在target-当前的值的key),所以在第二个值的时候我们就可以直接返回结果了哈。

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            if (map.containsKey(target - nums[i])) {
                return new int[]{map.get(target - nums[i]), i};
            }
            map.put(nums[i], i);
        }

        return null;
    }
}

这里要记住一些java中常见集合类的方法:

Set:加入元素add(),删除元素remove(),查看是否存在contains()

Map:加入元素put(),删除元素remove(),查看是否存在key:containsKey(),查看是否存在value:containsValue

List:加入元素add(),删除元素remove(),修改指定位置元素set(index,newVal),获取指定下标的值get(),获取指定值的下标indexOf();

Deque:入队offer(),出队poll(),模仿栈:入栈:push(),出栈:pop(),查看栈顶peek();

相关推荐
m4Rk_13 分钟前
【论文阅读】Agent 记忆机制(119):EvoLife——让具身 Agent 把主动问到的答案沉淀为可复用的空间经验
论文阅读·人工智能·学习·开源·github
Escalating_xu31 分钟前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
程序猿乐锅1 小时前
万字详解Single-flight(单飞模式)
java·开发语言·分布式·后端·学习·single-flight
AiNightVision1 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
Java后端的Ai之路1 小时前
【AIAgent开发】-Agent工具封装成CLI(纯干货!!!)
java·javascript·人工智能·agent·cli
AntsData2 小时前
用 12K+ 条亚马逊评论信号,定位机械键盘下一版该改什么
java·大数据·计算机外设
code2cat2 小时前
【随笔】连续批处理:长短请求怎样在迭代之间补位
java·人工智能·后端·大语言模型·vllm
最强小杰2 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai
牧羊人.3332 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn
Flynn Liang2 小时前
Spring AI 2.0 深度解析:ChatClient、Advisor 链与 MCP——Java 工程师的 AI 落地最优解
java·人工智能·spring·大模型·架构设计·spring ai