LeetCode 1 Two Sum
2015-12-23 20:12
330 查看
开始刷LeetCode
刷完换工作!!!
先排序后左右搜索
struct Element
{
int iNumber;
int iIndex;
};
bool compareFunc(const Element& arg1, const Element& arg2)
{
return arg1.iNumber<arg2.iNumber;
}
class Solution {
public:
vector<int> twoSum(vector<int> &numbers, int target) {
vector<int> results;
vector<Element> vInput;
vector<int>::iterator itv = numbers.begin();
int i =0;
Element temp;
while(itv!=numbers.end())
{
temp.iNumber = *itv;
temp.iIndex = ++i;
vInput.push_back(temp);
}
sort(vInput.begin(),vInput.end(),compareFunc);
vector<Element>::iterator itv1 = vInput.begin();
vector<Element>::iterator itv2 = vInput.end();
itv2--;
while(itv1<=itv2 && itv1->iNumber + itv2->iNumber!=target)
{
if(itv1->iNumber+itv2->iNumber<target)
itv1++;
if(itv1->iNumber+itv2->iNumber>target)
itv2--;
}
if(itv1->iNumber + itv2->iNumber== target)
{
if(itv1->iIndex<itv2->iIndex)
{
results.push_back(itv1->iIndex);
results.push_back(itv2->iIndex);
}
else
{
results.push_back(itv2->iIndex);
results.push_back(itv1->iIndex);
}
}
return results;
}
};
刷完换工作!!!
先排序后左右搜索
struct Element
{
int iNumber;
int iIndex;
};
bool compareFunc(const Element& arg1, const Element& arg2)
{
return arg1.iNumber<arg2.iNumber;
}
class Solution {
public:
vector<int> twoSum(vector<int> &numbers, int target) {
vector<int> results;
vector<Element> vInput;
vector<int>::iterator itv = numbers.begin();
int i =0;
Element temp;
while(itv!=numbers.end())
{
temp.iNumber = *itv;
temp.iIndex = ++i;
vInput.push_back(temp);
}
sort(vInput.begin(),vInput.end(),compareFunc);
vector<Element>::iterator itv1 = vInput.begin();
vector<Element>::iterator itv2 = vInput.end();
itv2--;
while(itv1<=itv2 && itv1->iNumber + itv2->iNumber!=target)
{
if(itv1->iNumber+itv2->iNumber<target)
itv1++;
if(itv1->iNumber+itv2->iNumber>target)
itv2--;
}
if(itv1->iNumber + itv2->iNumber== target)
{
if(itv1->iIndex<itv2->iIndex)
{
results.push_back(itv1->iIndex);
results.push_back(itv2->iIndex);
}
else
{
results.push_back(itv2->iIndex);
results.push_back(itv1->iIndex);
}
}
return results;
}
};
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解