본문 바로가기

ALGORITHM/c&c++ leetcode

[c/LeetCode] Two Sum

난 아직.. returnSize의 역할을 이해 못했다.

어짜피 문제에서 exactly one solution 이라고 강조까지 해놨으니, size는 당연히 2인데 굳이 저걸 포인터로 받아오는 이유는 뭐지?

int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    int *result =(int *)malloc(sizeof(int) * 2);
    for(int i=0;i<numsSize;i++)
    {
        for(int j=i+1;j<numsSize;j++)
        {
            if(nums[i] + nums[j] == target)
            {
                result[0] =i;
                result[1] =j;
                break;
            }
        }
    }
    *returnSize = 2;
    return result;
}

일단 풀긴 했지만 아직도 시간복잡도가 O(n^2)이다.

더 줄일 수 있는 아이디어는 있는데 테스트 몇번 해봐야할듯

'ALGORITHM > c&c++ leetcode' 카테고리의 다른 글

[C/LeetCode] Arithmetic Slices  (0) 2022.03.03
[c/LeetCode] Single Number  (0) 2022.02.15
[c/LeetCode] Median of Two Sorted Arrays  (0) 2022.02.12
[c && swift/LeetCode] Reverse Integer  (0) 2022.02.12
[c/LeetCode] Add Two Numbers  (0) 2022.02.11