코딩 테스트/LeetCode
1. Two Sum (두 합)
포카리tea
2023. 4. 10. 11:26
정수 배열 nums 과 정수가 주어지면 두 숫자의 합이 target이 되도록하는 인덱스를 반환합니다.
각 입력에 정확히 하나의 솔루션이 있다고 가정할 수 있으며 동일한 요소를 두 번 사용할 수 없습니다 .
어떤 순서로든 답변을 반환할 수 있습니다.
예시 1:
입력: nums = [2,7,11,15], target = 9
출력: [0,1]
설명: nums[0] + nums[1] == 9이므로 [0, 1]을 반환합니다.
예시 2:
입력: nums = [3,2,4], target = 6
출력: [1,2]
예시 3:
입력: nums = [3,3], target = 6
출력: [0,1]
조건:
- 2 <= nums.length <= 10^4
- -10^9 <= nums[i] <= 10^9
- -10^9 <= target <= 10^9
- 하나의 유효한 답변만 존재합니다.
제약조건: 시간 복잡도O(n^2) 보다 낮은 알고리즘을 생각해낼 수 있습니까?
정답:
public class Solution {
public int[] TwoSum(int[] nums, int target) {
for (int i = 0; i < nums.Length; i++)
{
for (int j = i + 1; j < nums.Length; j++)
{
if (nums[i] + nums[j] == target)
{
int[] result = {i, j};
return result;
}
}
}
return null;
}
}
해설:
첫번째부터 순차적으로 더한 값을 target과 비교해보며 풀었습니다.