We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 0383e00 commit 92c6959Copy full SHA for 92c6959
3sum/seungseung88.js
@@ -0,0 +1,35 @@
1
+/**
2
+ *
3
+ * 시간 복잡도: O(n log n) + O(n^2) => O(n^2)
4
+ * 공간 복잡도: O(1)
5
+ * - 자바스크립트 배열은 원래의 배열 자체를 바꿈
6
+ */
7
+const threeSum = (numbers) => {
8
+ let result = [];
9
+ numbers.sort((a, b) => a - b);
10
+
11
+ for (let i = 0; i < numbers.length; i += 1) {
12
+ if (i > 0 && numbers[i] === numbers[i - 1]) continue;
13
14
+ let l = i + 1;
15
+ let r = numbers.length - 1;
16
17
+ while (l < r) {
18
+ const threeSum = numbers[i] + numbers[l] + numbers[r];
19
20
+ if (threeSum > 0) {
21
+ r -= 1;
22
+ } else if (threeSum < 0) {
23
+ l += 1;
24
+ } else {
25
+ result.push([numbers[i], numbers[l], numbers[r]]);
26
+ while (l < r && numbers[l] === numbers[l + 1]) l += 1;
27
+ while (l < r && numbers[r] === numbers[r - 1]) r -= 1;
28
29
30
+ }
31
32
33
34
+ return result;
35
+};
0 commit comments