-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtwoSum.ts
More file actions
33 lines (28 loc) · 806 Bytes
/
Copy pathtwoSum.ts
File metadata and controls
33 lines (28 loc) · 806 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数
function twoSum (numbers: number[], target: number): number[] {
const o = {}
for (let i = 0; i < numbers.length; i++) {
const cur = numbers[i]
if (o[cur] !== undefined) {
return [o[cur], i + 1]
} else {
o[target - cur] = i + 1
}
}
return [-1, -1]
}
function twoSum1 (numbers: number[], target: number) {
let left = 0
let right = numbers.length - 1
while(left < right) {
const sum = numbers[left] + numbers[right]
if (sum === target) {
return [left + 1, right + 1]
} else if (sum > target) {
right--
} else {
left++
}
}
return [-1, -1]
}