您的位置:首页 > 其它

Two Sum

2013-04-12 21:59 232 查看
没有重复元素的情况下,用map做的

class Solution {
public:
    map<int,int> mp;
    vector<int> twoSum(vector<int> &numbers, int target) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        mp.clear();
        for(int i=0;i<numbers.size();i++)
            mp[numbers[i]]=i+1;
        int i,j;
        for(i=1;i<=numbers.size();i++){
            int left=target-numbers[i-1];
            if(mp.count(left)!=0){
                j=mp[left];
                break;
            }
        }
        vector<int> tmp;
        if(i>j){
            int temp=i;
            i=j;
            j=temp;
        }
        tmp.push_back(i);
        tmp.push_back(j);
        return tmp;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: