1. Two Sum

问题描述

解决方案

时间复杂度O(n^2)

        vector<int> twoSum(vector<int>& nums, int target) 
        {
            int start=0,end=nums.size();
            int var1,var2;
            for(int i=0;i<end;++i)
            for(int j=i+1;j<end;++j)
            {
                if((nums[i]+nums[j]==target))
                {
                    var1=i;
                    var2=j;
                    break;
                }
            }
            return vector<int>{var1,var2};
        }
 

时间复杂度O(n)

        vector<int> twoSum(vector<int>& nums, int target) 
        {
            map<int,int> mi; 
            vector<int> ivec;
            for(int i=0;i<=nums.size();++i)
            {
                auto iter=mi.find(target-nums[i]);
                if(iter!=mi.end())
                {
                    ivec.push_back(iter->second);
                    ivec.push_back(i);
                    return ivec ; 
                }
                mi[nums[i]]=i;
            } 
            return ivec;
      }
posted @ 2016-08-06 09:15  弦断  阅读(101)  评论(0编辑  收藏  举报