只能说hash_table的巧妙性:
这是自己在完全不用hash_table的方法下完成的,实在是太麻烦了:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> temp(nums);
sort(nums.begin(),nums.end());
int length=nums.size();
vector<int> ans;
int i,j,k;
/*for(i=0;i<length;i++)
{
if(nums[i]+nums[length-1]>=target) break;
}*/
for(i=0,j=length-1;i<j&&i!=j;i++,j--)
{
if(nums[i]+nums[j]<=target)
{
/*ans.push_back(j+1);
ans.push_back(k+1);*/
break;
}
}
if(i>j) {int x=i;i=j;j=x;}
for(int index1=i-1;index1<=j+1;index1++)
{
for(int index2=index1+1;index2<=j+1;index2++)
{
if(nums[index1]+nums[index2]==target)
{
{
for(int i=0;i<temp.size();i++)
{
if(temp[i]==nums[index1]) index1=i;
if(temp[i]==nums[index2]) index2=i;
}
ans.push_back(index1+1);
ans.push_back(index2+1);
return ans;
}
}
}
}
return ans;
}
};