TwoSumII
Published at 2021-11-10
class Solution:
def twoSum(self, numbers: List[int], target: int) -> List[int]:
restDict = {}
for i, num in enumerate(numbers):
rest = target - num
if rest in restDict:
return [restDict[rest], i+1]
else:
restDict[num] = i + 1 /**
* @param {number[]} numbers
* @param {number} target
* @return {number[]}
*/
var twoSum = function(numbers, target) {
let low = 0;
let high = numbers.length - 1;
while(low < high){
const sums = numbers[low] + numbers[high];
if(sums === target) break
else if(sums < target) low ++;
else high --
}
return [low+1, high+1]
};
/*
[two pointer]
오름차순 정렬되었기 때문에 두 포인터값의 합이 타겟과 비교해서 큰지 작은지에 따라 증감가능
합계가 타겟보다 작으면 작은숫자쪽 포인터를 증가, 반대면 큰 숫자쪽 포인터 감소시킴
*/