LeetCode热题100--两数之和

题目:

解法一:

暴力枚举

既然要寻找两个整数,那么我们就通过遍历去找到两个元素i和j使他们的和等于target即可,注意j=i+1避免i和自己匹配

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

解法二:

哈希表

我们可以通过创建一个哈希表去存储我们的结果,逆向思维,我们要找两个和为target的数,我们可以遍历数组,看哈希表中有没有对应的target-numsi,如果有,我们输出这两个数,如果没有,我们就将这个数存入到哈希表中,保证下一次便利的时候不会和自己匹配,同时继续看下一个数是否满足条件。

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> hashmap=new HashMap<Integer,Integer>();
        for(int i=0;i<nums.length;i++){
            if(hashmap.containsKey(target-nums[i])){
                return new int[]{hashmap.get(target-nums[i]),i};
            }
            hashmap.put(nums[i],i);
        }
        return new int[0];
    }
}
相关推荐
数模竞赛Paid answer1 小时前
2026年中青杯数学建模A题数学建模论文智能评估系统与多智能体优化方法求解全过程论文及程序
算法·数学建模·中青杯
银-豆豆2 小时前
数据结构与算法-动态规划、回溯与贪心
算法·动态规划
JL152 小时前
面试项目被问到自闭-如何把课设包装成亮眼项目
面试·职场和发展
想吃火锅10053 小时前
【leetcode】200. 岛屿数量
算法·leetcode·职场和发展
Nil2084 小时前
leetcode 54螺旋矩阵
算法·leetcode·矩阵
依然鸣5 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
qeen877 小时前
【数据结构】自平衡二叉搜索树各种旋转算法原理解析及AVL树的C++实现
数据结构·c++·算法
lucas_AI8 小时前
1.2B 小模型赢过 235B 大模型:NaviDC-OCR 把文档解析卷明白了
人工智能·深度学习·算法
冻柠檬飞冰走茶8 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法