码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 1.Two Sum

时间:2014-12-28 19:28:49      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

#include<vector>
using namespace std;
class Solution {
public:
   vector<int> twoSum(vector<int> &numbers, int target) {
        vector<int> copyNumbers=numbers;
        sort(copyNumbers.begin(), copyNumbers.end());
        
        vector<int> result;
        int minIndex=0;
        int maxIndex=numbers.size()-1;
        int sum;
        while(minIndex<=maxIndex)
        {
            sum=copyNumbers[minIndex]+copyNumbers[maxIndex];
            if(sum==target)
            {
                vector<int>::iterator minIte=find(numbers.begin(), numbers.end(), copyNumbers[minIndex]);
                vector<int>::reverse_iterator maxIte=find(numbers.rbegin(),numbers.rend(), copyNumbers[maxIndex]);
                
                result.push_back(&*minIte-&numbers[0]+1);
                result.push_back(&*maxIte-&numbers[0]+1);
                break;
            }
            else if(sum>target)
            {
                maxIndex--;
            }
            else
                minIndex++;
        }
        sort(result.begin(),result.end());
        return result;
    }
};

 

LeetCode 1.Two Sum

标签:

原文地址:http://www.cnblogs.com/kyokuhuang/p/4190248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!