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

    }
}
相关推荐
纽扣6675 分钟前
【算法进阶之路】链表进阶:删除、合并、回文与排序全解析
数据结构·算法·链表
9523619 分钟前
SpringBoot统一功能处理
java·spring boot·后端
Lyyaoo.22 分钟前
优惠券秒杀业务分析
java·开发语言
消失的旧时光-194323 分钟前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
勿忘初心122126 分钟前
Java 国密 SM4 加密工具类实战(Hutool + BouncyCastle)|企业级数据加密 + 兼容 JDK8
java·数据安全·数据加密·后端开发·企业级开发·国密 sm4
庞轩px30 分钟前
第8篇:原子类与CAS底层原理——无锁并发的实现
java·cas·乐观锁·aba·无锁编程·自旋
智者知已应修善业34 分钟前
【51单片机不用数组动态数码管显示字符和LED流水灯】2023-10-3
c++·经验分享·笔记·算法·51单片机
rleS IONS40 分钟前
SpringBoot中自定义Starter
java·spring boot·后端
苍煜1 小时前
慢SQL优化实战教学
java·数据库·sql
AI进化营-智能译站1 小时前
ROS2 C++开发系列16-智能指针管理传感器句柄|告别ROS2节点内存泄漏与野指针
java·c++·算法·ai