이 프로그램은 잘 실행되는 코드 블럭에서 실행되지만 온라인 판단에서는 동일한 입력에 대해 런타임 오류가 발생합니다. 이 오류의 원인이 무엇인지 알 수 없습니다. 빈 numbers
벡터에 호출C++의 런타임 오류
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;
}
클래스를 불필요하게 사용하고 코드를 들여 쓰지 않으려면 2 포인트 줄여야합니다. 어쨌든, 당신의 twoSum() 함수는 빈 벡터가 주어지면 깨지기도합니다. 아마도 잊어 버린 몇 가지 코너 케이스가있을 것입니다. –
@UlrichEckhardt Sir.이 형식은 C++/Java의 온라인 심사 위원의 표준으로, 즉 클래스 메소드 내에 솔루션을 래핑합니다. 귀하의 downvote 또는 다른 질문을 물어 금지 수 있습니다 고려하십시오. –
빈 벡터 입력이 아닌 정확한 입력으로 충돌이 확실합니까? – juanchopanza