LeetCode 1. Two Sum

来源:互联网 发布:淘宝禁止开店 编辑:程序博客网 时间:2024/06/05 03:28

题意:

给定一个数组,和一个数target。要求在该数组中找到两个数字,它们的和等于target。返回这两个数在nums中的索引。

保证只有一种方案。

题解:

用到map。遍历一遍nums,对于当前遍历到的数,在map中查看target-nums[i]是否存在,若存在则找到答案。

其中map中的value表示的是该数在nums中的索引。时间复杂度为O(n)

class Solution {public:    vector<int> twoSum(vector<int>& nums, int target)     {        vector<int> ans;        ans.clear();        map<int,int> ma;        ma.clear();        for(int i=0;i<nums.size();i++)        {            if(ma.find(target-nums[i])!=ma.end())            {                ans.push_back(ma[target-nums[i]]);                ans.push_back(i);                return ans;            }            ma[nums[i]]=i;        }    }};


原创粉丝点击