probem:1. Two Sum
Posted nosaferyao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了probem:1. Two Sum相关的知识,希望对你有一定的参考价值。
今天先熟悉熟悉, 希望后面能一次就过
1 #include <vector> 2 #include <algorithm> 3 4 using namespace std; 5 6 bool mycompare(const pair<int, int>&a, const pair<int, int>& b) 7 { 8 return a.first < b.first; 9 } 10 11 class Solution { 12 public: 13 vector<int> twoSum(vector<int>& nums, int target) { 14 vector<pair<int, int> > vecPair(nums.size()); 15 for (size_t i = 0; i < vecPair.size(); ++i){ 16 vecPair[i] = make_pair(nums[i], i); 17 } 18 sort (vecPair.begin(), vecPair.end(), mycompare); 19 vector<int> result; 20 int a = 0; 21 int b = vecPair.size()-1; 22 while (a<b){ 23 int sum = vecPair[a].first + vecPair[b].first; 24 if (sum == target){ 25 break; 26 } 27 if (sum < target){ 28 ++ a; 29 } 30 else { 31 -- b; 32 } 33 } 34 if (a < b){ 35 result.push_back(vecPair[a].second); 36 result.push_back(vecPair[b].second); 37 } 38 return result; 39 } 40 };
以上是关于probem:1. Two Sum的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode #001# Two Sum详解(js描述)