我在运行良好的代码块上运行此程序,但在在线判断中,它为输入相同的输入提供了运行时错误。 我无法弄清楚这个错误的原因是什么。
vector<int> twoSum(vector<int> &numbers, int target)
{
vector<int> c ;
sort(numbers.begin(),numbers.end()-1);
vector<int>::iterator i = numbers.begin();
vector<int>::iterator j = numbers.end()-1;
while(i<=j)
{
int sum = *i + *j;
if(sum==target)
{ c.push_back(i-numbers.begin());
c.push_back(j-numbers.begin());
//cout<<*i<<" "<<*j<<endl;
break;
}
else if(sum<target) i++;
else j--;
}
return c;
}
答案 0 :(得分:7)
sort(numbers.begin(),numbers.end()-1);
在空numbers
向量上调用此方法会导致运行时错误。它应该是sort(numbers.begin(), numbers.end());