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];  //找不到的话返回空数组

    }
}
相关推荐
艸肅10 分钟前
Ubuntu 安装 JDK (含手动安装)
java·ubuntu·jdk
m0_7341724225 分钟前
Python字典计数怎样处理首次出现的键
java
卓怡学长43 分钟前
w204基于springbo旅行社签证代理服务系统
java·spring boot·spring·intellij-idea
Discipline102943 分钟前
尼泊尔河流流量:天气驱动的预测与高流量风险
人工智能·算法
泡海椒1 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
Json____1 小时前
家居装修 AI 智能咨询助手:让装修咨询从“大海捞针“变成“一问即答“
java·后端·vue3·it学习·wwwoop.com
vipxieliang1 小时前
ValidX 在微服务架构中的验证策略
java·spring boot
用户094248568031 小时前
第18章:ConcurrentHashMap与并发容器实战
java·jvm
XuCoder1 小时前
改一个数,右边全得重算,这题怎么扛住两万次查询
算法
小羊没烦恼!1 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#