728x90
[Javascript] LeetCode 167. Two Sum II - Input Array Is Sorted
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
/**
* @param {number[]} numbers
* @param {number} target
* @return {number[]}
*/
var twoSum = function(numbers, target) {
let lt = 0;
let rt = numbers.length -1;
let twoSum = 0;
while (lt < rt) {
twoSum = numbers[lt] + numbers[rt];
if (twoSum === target) {
return [lt + 1, rt + 1];
}
if (twoSum < target) {
lt++;
continue;
}
if (twoSum > target) {
rt--;
continue;
}
}
};
내 풀이 2 ( else에 넣고 삼항연산자 사용)
/**
* @param {number[]} numbers
* @param {number} target
* @return {number[]}
*/
var twoSum = function(numbers, target) {
let lt = 0;
let rt = numbers.length -1;
let twoSum = 0;
while (lt < rt) {
twoSum = numbers[lt] + numbers[rt];
if (twoSum === target) {
return [lt + 1, rt + 1];
} else {
twoSum < target ? lt++ : rt--;
}
}
};
- 삼항연산자가 가독성은 안 좋은 것같아요.
- 근데 리액트에서 많이 쓰여서 익숙해져야 할듯
다른 사람 풀이 1
# PYTHON
# binary search
def twoSum(self, numbers, target):
for i in xrange(len(numbers)):
l, r = i+1, len(numbers)-1
tmp = target - numbers[i]
while l <= r:
mid = l + (r-l)//2
if numbers[mid] == tmp:
return [i+1, mid+1]
elif numbers[mid] < tmp:
l = mid+1
else:
r = mid-1
- 파이썬 풀이지만… binarySearch로도 풀 수 있네요.
'Coding Test > LeetCode' 카테고리의 다른 글
[Javascript] (LeetCode) 19. Remove Nth Node From End of List (Medium) (0) | 2022.07.14 |
---|---|
[Javascript] LeetCode 876. Middle of the Linked List (0) | 2022.07.14 |
[Javascript] LeetCode 557. Reverse Words in a String III (0) | 2022.07.13 |
[Javascript] LeetCode 344. Reverse String (0) | 2022.07.13 |
오름차순 (Ascending order) vs 비 내림차순(non-decreasing order) (0) | 2022.07.13 |
[Javascript] LeetCode 283. Move Zeroes (0) | 2022.07.13 |
[Javascript] LeetCode 189. Rotate Array (0) | 2022.07.11 |
[Javascript] LeetCode 977. Squares of a Sorted Array (0) | 2022.07.11 |
댓글