[LintCode] Two Sum 两数之和

简介: Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the tw.

Given an array of integers, find two numbers such that they add up to a specific target number.

The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are NOT zero-based.

 Notice

You may assume that each input would have exactly one solution

Example

numbers=[2, 7, 11, 15], target=9

return [1, 2]

Challenge 

Either of the following solutions are acceptable:

  • O(n) Space, O(nlogn) Time
  • O(n) Space, O(n) Time

LeetCode上的原题,请参见我之前的博客Two Sum

class Solution {
public:
    /*
     * @param numbers : An array of Integer
     * @param target : target = numbers[index1] + numbers[index2]
     * @return : [index1+1, index2+1] (index1 < index2)
     */
    vector<int> twoSum(vector<int> &nums, int target) {
        unordered_map<int, int> m;
        for (int i = 0; i < nums.size(); ++i) m[nums[i]] = i;
        for (int i = 0; i < nums.size(); ++i) {
            int t = target - nums[i];
            if (m.count(t) && m[t] != i) {
                return {i + 1, m[t] + 1};
            }
        }
        return {};
    }
};

本文转自博客园Grandyang的博客,原文链接:两数之和[LintCode] Two Sum ,如需转载请自行联系原博主。

相关文章
|
人工智能
codeforces 315 B.Sereja and Array
codeforces 315 B.Sereja and Array
36 0
codeforces 299 A. Ksusha and Array
题目就是让你找出一个数组中可以将这个数组中所有数整除的数,很明显,如果存在,这个数肯定是最小的一个。
43 0
|
1月前
|
算法 C++
Leetcode第50题(Pow(x,n))
这篇文章介绍了如何使用快速幂算法解决LeetCode第50题,即实现函数pow(x, n)来计算x的n次幂,并提供了C++的代码实现。
14 0
|
3月前
|
算法 Java
LeetCode第50题Pow(x, n)
LeetCode第50题"Pow(x, n)"的解题方法,运用分而治之的策略,通过快速幂算法高效计算幂函数的结果。
LeetCode第50题Pow(x, n)
codeforces 289 B. Polo the Penguin and Matrix
题目意思是在n*m的矩阵中,你可以对矩阵中的每个数加或者减d,求最少的操作次数,使得矩阵中所有的元素相同。 虽然在condeforces中被分到了dp一类,但完全可以通过排序,暴力的方法解决。
40 0
hdoj 3555 BOMB(数位dp)
hdoj 3555 BOMB(数位dp)
37 0
|
人工智能
POJ 2299 Ultra-QuickSort(树状数组+离散化+求逆序数)
POJ 2299 Ultra-QuickSort(树状数组+离散化+求逆序数)
|
算法 安全 Swift
LeetCode - #50 Pow(x, n)
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
人工智能
LeetCode 47. Permutations II
给定一组可能有重复元素不同的整数,返回所有可能的排列(不能包含重复)。
70 0
LeetCode 47. Permutations II
洛谷P2722-[USACO3.1]总分 Score Inflation(完全背包)
洛谷P2722-[USACO3.1]总分 Score Inflation(完全背包)
洛谷P2722-[USACO3.1]总分 Score Inflation(完全背包)