LeetCode第一题(梦开始的地方)

题目:

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

你可以按任意顺序返回答案。

示例 1:

复制代码
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:

复制代码
输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:

复制代码
输入:nums = [3,3], target = 6
输出:[0,1]

这题是一个很典型的使用哈希表的题目,一般第一时间想到的做法肯定是两个for循环进行遍历,但这样算法的时间复杂度已经到达了On的平方,这肯定不是我们想要的,所以我们可以使用哈希表来解决该题

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int n = nums.length;
        HashMap<Integer,Integer>map = new HashMap<>();
        for(int i = 0;i<n;i++){
            if(map.containsKey(target - nums[i])){
                x = map.get(targer - nums[i]);
                return new int[]{x,i};
            }
            map.put(nums[i],i);
        }
        return new int[0];
}
相关推荐
牛肉在哪里13 小时前
ros2 从零开始28 监听广播C++
开发语言·c++·算法·机器人
玖玥拾13 小时前
C/C++ 数据结构(二)双向链表
c语言·数据结构·c++
乐观勇敢坚强的老彭13 小时前
GESP一级核心算法:循环与条件判断的结合
java·数据结构·算法
noipp13 小时前
推荐题目:洛谷 P1737 [NOI2016] 旷野大计算
linux·数据结构·算法
QiLinkOS13 小时前
极客精神与商业思维的融合实践(2)
c语言·c++·人工智能·算法·开源协议
lzjava202413 小时前
Python的数据结构,推导式、迭代器和生成器
数据结构·windows·python
code_pgf14 小时前
改进模型架构来减少MLLMs中的幻觉现象
人工智能·深度学习·算法
2301_7644413314 小时前
基于AI的本地文件归档智能管理工具梳理
人工智能·python·算法·目标检测·交互
无限码力14 小时前
美团研发岗 4月18号笔试真题 - 包包的最长公共子序列3
算法·美团笔试题·美团研发岗笔试题·美团机试题
怪兽学LLM14 小时前
LeetCode 21 合并两个有序链表:彻底理解虚拟头节点(Dummy)套路
python·leetcode·链表