zoukankan      html  css  js  c++  java
  • 1. Two Sum

    Question:

    Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    You can return the answer in any order.

    Example 1:

    Input: nums = [2,7,11,15], target = 9
    Output: [0,1]
    Output: Because nums[0] + nums[1] == 9, we return [0, 1].
    Example 2:

    Input: nums = [3,2,4], target = 6
    Output: [1,2]
    Example 3:

    Input: nums = [3,3], target = 6
    Output: [0,1]

    Constraints:

    2 <= nums.length <= 104
    -109 <= nums[i] <= 109
    -109 <= target <= 109
    Only one valid answer exists.

    Follow-up: Can you come up with an algorithm that is less than O(n2) time complexity?

    Solution 1:

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
            vector<int> result;  
            for(int i = 0; i < nums.size()-1; i++)
            {
                for(int j = i+1; j < nums.size(); j++)
                {
                    if((nums[j] + nums[i]) == target)
                    {
                        result.push_back(i);
                        result.push_back(j);
                    }
                }
            }
            return result;
        }
    };
    

    优化后方案 Solution 2(速度比方案1快100倍):

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
            vector<int> result;  
            unordered_map<int ,int> hashMap;
            for(int i = 0; i < nums.size(); i++)
            {
                int num = target-nums[i];
                if(hashMap.find(num) != hashMap.end()){
                    result.push_back(hashMap[num]);
                    result.push_back(i);
                    return result;
                }
                hashMap[nums[i]] = i;
            }
            return result;
    
        }
    };
    
  • 相关阅读:
    查询计划Hash和查询Hash
    执行计划的重用
    执行计划组件、组件、老化
    执行计划的生成
    查询反模式
    T-SQL 公用表表达式(CTE)
    SQL 操作结果集 -并集、差集、交集、结果集排序
    SQL语句
    POJ 1821 单调队列+dp
    区间gcd问题 HDU 5869 离线+树状数组
  • 原文地址:https://www.cnblogs.com/Pomelos/p/15678108.html
Copyright © 2011-2022 走看看