首页 > 其他分享 >1. 两数之和

1. 两数之和

时间:2024-11-11 14:20:16浏览次数:1  
标签:target nums int 复杂度 preSum 两数

  1. 题目链接

  2. 解题思路:

    • 方法一:两个for循环,时间复杂度:O(n^2)
    • 方法二:先排序,然后双指针,时间复杂度:O(n * logn)
    • 方法三:使用一个set,从左往右遍历,每次遍历到一个数num,先查找set,是否存在target - num的数,如果存在,直接返回了。时间复杂度:O(n)
      • 因为题目需要下标,所以要用map,value就是下标。
  3. 方法三代码

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
            unordered_map<int, int> preSum;    
            int n = nums.size();
            for (int i = 0; i < n; ++i) {
                if (preSum.count(target - nums[i]) != 0) {
                    return {preSum[target - nums[i]], i};
                }
                preSum[nums[i]] = i;
            }
            return {-1, -1};
        }
    };
    

标签:target,nums,int,复杂度,preSum,两数
From: https://www.cnblogs.com/ouyangxx/p/18539604

相关文章

  • LeetCode【0002】两数相加
    本文目录1中文题目2求解思路2.1基础解法:递归解法2.2最优解法:迭代法3题目总结1中文题目给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请将两个数相加,并以相同形式返回一个表示和的链表。说明:......
  • 20241107,LeetCode 每日一题,使用 Go 计算两数相加
    思路模拟加法:链表存储的是逆序数位,因此从头节点开始,逐位相加可以模拟正常的加法。每两个节点的值相加,并记录进位。逐节点相加:创建一个新的链表,用于存储结果,每次将两个链表对应节点的值加上进位值,结果存储到新链表的节点中。计算过程中,将(l1.Val+l2.Val+carry)相加的......
  • 20241107,LeetCode 每日一题,使用 Go 计算两数相加
    思路模拟加法:链表存储的是逆序数位,因此从头节点开始,逐位相加可以模拟正常的加法。每两个节点的值相加,并记录进位。逐节点相加:创建一个新的链表,用于存储结果,每次将两个链表对应节点的值加上进位值,结果存储到新链表的节点中。计算过程中,将(l1.Val+l2.Val+carry)相加的结......
  • leetcode-hot100-两数之和
    两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。示例输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums......
  • LeetCode 每日一题,用 Go 实现两数之和的非暴力解法
    题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,15],target......
  • 两数之和(双指针法)
     给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列  ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1<=index1<index2<=numbers.length 。以长度为2的......
  • 两数之和到哈希表
    两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,......
  • 代码随想录算法训练营第六天| leetcode242.有效的字母异位词、leetcode349.两个数组的
    1.leetcode242.有效的字母异位词题目链接:242.有效的字母异位词-力扣(LeetCode)文章链接:代码随想录视频链接:学透哈希表,数组使用有技巧!Leetcode:242.有效的字母异位词哔哩哔哩bilibili自己的思路:首先就是对字符串进行分开成一个一个单独的字母,然后使用列表存储这些数据,再对......
  • 【LeetCode】两数之和、大数相加
    主页:HABUO......
  • 解决数组两数之和问题与逻辑推理找出谋杀案凶手
    给定一个整数数组nums和一个整数目标值target(2<=nums.length<=10^4),请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,15],t......