leetcode题目,有一个测试样例过不去,自己的IDE上可以通过,但是leetcode上报错heap-buffer-overflow,查了一下说是数组越界,但是检查了以下代码发现也没有地方越界了啊。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> temp = nums;
sort(nums.begin(), nums.end());
for(int i=0;nums[i]<=target/2;i++){
vector<int>::iterator pos = lower_bound(nums.begin()+i, nums.end(), target-nums[i]);
if(*pos == target-nums[i]){
int first=-1,second=-1 ;
for(int j=0;j<nums.size();j++){
if((temp[j]==nums[i]||temp[j]==*pos)){
if(first<0)
first = j;
else
second = j;
}
else
continue;
if(second>=0)
return {first, second};
}
}
}
return {};
}
};
过不去的测试用例为
[1,6142,8192,10239]
18431