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

    }
}
相关推荐
yaaakaaang2 分钟前
九、装饰器模式
java·装饰器模式
大熊背6 分钟前
如何利用Lv值实现三级降帧
算法·自动曝光·lv·isppipeline
d_dreamer8 分钟前
SeaTunnel推荐Maven版本
java·maven
清心歌19 分钟前
记一次系统环境变量更改后在IDEA中无法读取新值的排查过程
java·后端·intellij-idea·idea
大尚来也22 分钟前
驾驭并发:.NET多线程编程的挑战与破局之道
java·前端·算法
dong__csdn26 分钟前
jdk添加信任证书
java·开发语言
向阳而生,一路生花27 分钟前
深入浅出 JDK7 HashMap 源码分析
算法·哈希算法
hhcccchh39 分钟前
1.1 HTML 语义化标签(header、nav、main、section、footer 等)
java·前端·html
随风,奔跑42 分钟前
Spring Security
java·后端·spring
君义_noip1 小时前
信息学奥赛一本通 4150:【GESP2509七级】⾦币收集 | 洛谷 P14078 [GESP202509 七级] 金币收集
c++·算法·gesp·信息学奥赛·csp-s