LeetCode 两数之和 Java

包括暴力解法和哈希表(包含各人理解)两种解法

题目:

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

        // 采用哈希表的形式 键值对
        Map<Integer, Integer> hashtable=new HashMap<Integer,Integer>();
        // key:值 value:数组下标 i
        for(int i=0;i<nums.length;i++){
            // hashtable.containsKey(x):判断哈希表中是否已经记录过x,返回boolean型
            if(hashtable.containsKey(target-nums[i])){
                return new int[]{hashtable.get(target-nums[i]),i};
                // 返回一个新数组,然后hashtable.get(值)对应的下标是什么
            }
            hashtable.put(nums[i],i);
            // 放入当前的值和下标,要先查再放,这样时间复杂度低
        }
        return new int[0];  //找不到的话返回空数组

    }
}
相关推荐
mqiqe10 分钟前
响应式流中的错误处理:Project Reactor 异常治理全体系
java·架构
我命由我1234517 分钟前
Android 开发问题:TopAppBar 和 topAppBarColors API is experimental...
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
AC赳赳老秦25 分钟前
语义采集进阶实战:利用 OpenClaw AI 语义识别自动提取网页核心信息,无需手动编写选择器
java·运维·服务器·python·信息可视化·deepseek·openclaw
码匠许师傅27 分钟前
【C++ 面试真题】20. 聊聊 C++ 的标准库常用算法
c++·算法·面试
AI人工智能+电脑小能手30 分钟前
大白话说Java设计模式-23-桥接模式(源码剖析篇)
java·设计模式·jdbc·桥接模式·源码分析·awt·java logging
李高钢36 分钟前
C# WPF Prism 进阶(二):区域(Region)与模块化(Module)
java·前端·数据库
long31638 分钟前
枚举(Enums)
java·开发语言·数据库
m0_547486661 小时前
《数据结构与算法(Python语言版)》全套PPT课件2026
数据结构·算法
墨雨晨曦881 小时前
2026/08/15 spring AI学习总结
java·tomcat
wno7041 小时前
Spring Boot JdbcTemplate配置Druid多数据源
java·spring boot·后端