화이트 배우고 C 언어 클래스를 사용하여, 처음 두 숫자와 주제를했다. 전체 개념은 처음부터 번호 순서 합으로 배열하고, 나중에 합산 회전 각 숫자를 통해, 비교적 간단하고, 대상 번호와 동일 여부를 판단한다. 동일하지 않으면 다음 번호로 진행 한 후 다음 번호와 합산, 같은 최종 번호가 할 수있는 모든 페어 추가, 결과가.
그것은 returnSize가 반환 두 숫자의 배열을 읽기 위해, 2로 설정 후 볼 필요가 있음을, 처음부터하지 두 숫자를 출력했다.
이상에 의해 상기 에러 도면 여기 배열 기능의 종료 후에 사라지지 않도록하여 오류의 원인이 반환 된 배열이 정적 배열로 설정되어, 그 반환 할 수있다. 최종 실행 코드는 다음과 같습니다 :
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int i=0,j;
*returnSize = 2;
static int r[2]={0,0};
for(i=0;i<numsSize-1;i++)
for(j=i+1;j<numsSize;j++)
{
if(nums[i]+nums[j]==target)
{
r[0]=i;
r[1]=j;
return r;
}
}
return 0;
}
결과 :