首页 > 其他分享 >leetcode-hot100-两数之和

leetcode-hot100-两数之和

时间:2024-11-04 19:41:32浏览次数:1  
标签:map target nums int hot100 数组 leetcode 两数

两数之和

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

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

示例

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

解决方法

  • 首先先创建一个map,它的key是数组元素的值,value值是这个数字在数组的下标
  • 然后去遍历这个数组,遍历的每一个数去看target - num[i]是否在map里
    • 如果有就直接返回,没有的话就把当前的值和下标放进map中

代码实现

public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            Integer j = map.get(target - nums[i]);
            if (j == null) {
                map.put(nums[i], i);
            } else {
                return new int[]{i, j};
            }
        }
        return null;
    }

标签:map,target,nums,int,hot100,数组,leetcode,两数
From: https://www.cnblogs.com/wwgroup/p/18526086

相关文章

  • Leetcode—280. 摆动排序【中等】Plus
    2024每日刷题(199)Leetcode—280.摆动排序实现代码classSolution{public:voidwiggleSort(vector<int>&nums){//n[0]≤n[1]≥n[2]≤n[3]//奇数大于等于前面元素偶数小于等于前面元素//352164//35162......
  • LeetCode 每日一题,用 Go 实现两数之和的非暴力解法
    题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,15],target......
  • LeetCode题练习与总结:两整数之和--371
    一、题目描述给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。示例1:输入:a=1,b=2输出:3示例2:输入:a=2,b=3输出:5提示:-1000<=a,b<=1000二、解题思路这个问题可以通过位运算来解决。位运算中的“与”操作(&)和“异或”操作(^......
  • LeetCode题练习与总结:超级次方--372
    一、题目描述你的任务是计算 a^b 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。示例1:输入:a=2,b=[3]输出:8示例2:输入:a=2,b=[1,0]输出:1024示例3:输入:a=1,b=[4,3,3,8,5,2]输出:1示例4:输入:a=2147483647,b=[2,......
  • LeetCode136 只出现一次的数字
    只出现一次的数字题目链接:LeetCode136描述给你一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。示例输入:nums=[2,2,1]输出:1......
  • Leetcode每日一题 3226. 使两个整数相等的位更改次数
    Leetcode每日一题##3226.使两个整数相等的位更改次数###C++给你两个正整数n和k。你可以选择n的二进制表示中任意一个值为1的位,并将其改为0。返回使得n等于k所需要的更改次数。如果无法实现,返回-1。解题思路:通过除2取余依次获得两个数对应的二进制位......
  • 代码随想录算法训练营第十一天|leetcode150. 逆波兰表达式求值、leetcode239. 滑动窗
    1leetcode150.逆波兰表达式求值题目链接:150.逆波兰表达式求值-力扣(LeetCode)文章链接:代码随想录视频链接:栈的最后表演!|LeetCode:150.逆波兰表达式求值哔哩哔哩bilibili自己的思路:这是一道有思路,但是思路并不多的题目,就是我会觉得是先将数据进行添加,然后对于符号通过......
  • 代码随想录算法训练营第十五天|leetcode110. 平衡二叉树、leetcode257.二叉树的所有路
    1leetcode110.平衡二叉树题目链接:110.平衡二叉树-力扣(LeetCode)文章链接:代码随想录视频链接:后序遍历求高度,高度判断是否平衡|LeetCode:110.平衡二叉树_哔哩哔哩_bilibili1.1视频看后的思路1.1.1完整的代码就是不断判断,对其数据存储,其实突然发现每道题思路真的都很像,就......
  • LeetCode 19. 删除链表的倒数第 N 个结点(java)
    目录题目描述:代码:第一种:第二种:题目描述:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1]代码:第一种:......
  • LeetCode22.括号生成
    题目:数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例1:输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]示例2:输入:n=1输出:["()"]思路:回溯法。如果左括号数量小于生成括号的对数,可以放一个左括号如果右......