leetcode 2SUM

     struct vp{
        int value;
        int place;
    };
    bool comp(const struct vp a, const struct vp b){
        return a.value<b.value;
    }

class Solution {
public:

    

    
    vector<int> twoSum(vector<int> &numbers, int target) {
        vector<struct vp> v ;
        for(int i = 0; i < numbers.size(); ++i){
            struct vp tmp;
            tmp.value = numbers[i];
            tmp.place = i;
            v.push_back(tmp);
        }
        sort(v.begin(), v.end(),comp);
        for(int i = 0; i < v.size(); i++){
            for(int j = i+1; j < v.size(); j++){
                if(v[i].value + v[j].value > target){
                    break;
                }
                if(v[i].value + v[j].value < target){
                    continue;
                }
                if(v[i].value + v[j].value == target){
                    vector<int> t ;
                    t.push_back(v[i].place+1);
                    t.push_back(v[j].place+1);
                    sort(t.begin(),t.end());
                    return t;
                }
            }
        }
        return numbers;
    }
};
posted @ 2014-09-28 11:15  lycan785  阅读(165)  评论(0编辑  收藏  举报