Skip to content

Commit ed823ca

Browse files
authored
Merge branch 'DaleStudy:main' into main
2 parents 661aca2 + f095117 commit ed823ca

File tree

181 files changed

+6349
-46
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

181 files changed

+6349
-46
lines changed

โ€Ž3sum/8804who.pyโ€Ž

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution:
2+
def threeSum(self, nums: List[int]) -> List[List[int]]:
3+
temp = {}
4+
answer = {}
5+
nums.sort()
6+
for i in range(len(nums)):
7+
for j in range(i+1, len(nums)):
8+
if -(nums[i]+nums[j]) in temp:
9+
ans = str(nums[i])+','+str(nums[j])
10+
answer[ans] = 1
11+
temp[nums[i]] = 1
12+
temp_ans = []
13+
for ans in answer.keys():
14+
s1, s2 = ans.split(',')
15+
temp_ans.append([int(s1), int(s2), -(int(s1)+int(s2))])
16+
return temp_ans
17+

โ€Ž3sum/Baekwangho.tsโ€Ž

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
/**
2+
ํ•ฉ์‚ฐ์ด 0์ด ๋˜๋Š” ์„œ๋กœ์†Œ ์กฐํ•ฉ์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.. ์ขŒํ‘œ๊ฐ€ ๋‹ค๋ฅธ ๊ฐ™์€ ๊ฐ’์€ ํ—ˆ์šฉํ•˜๋˜,
3+
๊ฐ™์€ ์ˆ˜๋กœ ๊ตฌ์„ฑ๋œ ์กฐํ•ฉ์€ ์ค‘๋ณต์„ ๋ถˆํ—ˆํ•œ๋‹ค.
4+
5+
๊ธฐ๋ณธ์ ์œผ๋กœ 3๊ฐ€์ง€ ์ˆ˜๋ฅผ ์ค‘๋ณต์—†์ด ์กฐํ•ฉํ•ด์„œ ๋ฝ‘์€ ๋‹ค์Œ, ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ set ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ?
6+
7+
8+
function threeSum(nums: number[]): number[][] {
9+
const arraySet = new Set<string>();
10+
11+
for (let i = 0; i <= nums.length - 3; i++) {
12+
for (let j = i + 1; j <= nums.length - 2; j++) {
13+
for (let k = j + 1; k <= nums.length - 1; k++) {
14+
if (nums[i] + nums[j] + nums[k] === 0) {
15+
const sorted = [nums[i], nums[j], nums[k]];
16+
sorted.sort((a, b) => a - b);
17+
const string = sorted.join("#");
18+
arraySet.add(string);
19+
}
20+
}
21+
}
22+
}
23+
24+
return Array.from(arraySet).map((el) =>
25+
el.split("#").map((el) => Number(el))
26+
);
27+
}
28+
*/
29+
30+
/**
31+
์‹œ๊ฐ„ ์ดˆ๊ณผํ•ด๋ฒ„๋ ธ๋‹ค. ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ์„๊นŒ?
32+
two sum ์„ ๋ณด๋‹ˆ ํ•ด์‹œํ…Œ์ด๋ธ”์„ ์“ด๋‹ค๊ณ  ํ•œ๋‹ค. nums ๋ฅผ ํ•ด์‹œํ…Œ์ด๋ธ”๋กœ ๋ณ€ํ™˜ํ•˜๊ณ ,
33+
์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์—์„œ ์ด๋ฅผ ํ™œ์šฉํ•ด๋ณด์ž.
34+
35+
function threeSum(nums: number[]): number[][] {
36+
const arraySet = new Set<string>();
37+
const hash = new Map<number, number[]>();
38+
nums.forEach((val, idx) => {
39+
const idxes = hash.get(val);
40+
if (idxes && idxes.length) {
41+
hash.set(val, [...idxes, idx]);
42+
} else {
43+
hash.set(val, [idx]);
44+
}
45+
});
46+
47+
for (let i = 0; i < nums.length - 2; i++) {
48+
for (let j = i + 1; j < nums.length - 1; j++) {
49+
const idxes = hash.get(0 - (nums[i] + nums[j]));
50+
51+
idxes?.forEach((idx) => {
52+
if (idx != i && idx != j) {
53+
const sorted = [nums[i], nums[j], nums[idx]];
54+
sorted.sort((a, b) => a - b);
55+
const string = sorted.join("#");
56+
arraySet.add(string);
57+
}
58+
});
59+
}
60+
}
61+
62+
return Array.from(arraySet).map((el) =>
63+
el.split("#").map((el) => Number(el))
64+
);
65+
}
66+
67+
*/
68+
69+
/**
70+
... 0์œผ๋กœ๋งŒ ๊ฐ€๋“์ฐฌ ๋ฐฐ์—ด์—์„œ time limit ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.
71+
ํ’€์ด๋ฅผ ๋ณด๊ณ ์˜ค๋‹ˆ, ์œ„ ๋กœ์ง์—์„œ 0์œผ๋กœ ๊ฐ€๋“์ฐฌ arraySet ์„ ์ˆœํšŒํ•˜๋Š” ๊ณณ์—์„œ ๊ฒฐ๊ตญ O(n^3) ์ด ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค๋Š” ์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
72+
ํ™•์‹คํ•œ ๊ฒƒ์€, ์ •๋ ฌ์„ ์ถ”๊ฐ€ํ–ˆ์„ ๊ฒฝ์šฐ ์œ„ ๋กœ์ง๋„ ํ†ต๊ณผ ๊ฐ€๋Šฅํ•œ ์ •๋„๋กœ ๋งŒ๋“ค์–ด๋ณผ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์‹ถ์—ˆ๋‹ค.
73+
74+
function threeSum(nums: number[]): number[][] {
75+
nums.sort((a, b) => a - b);
76+
const arraySet = new Set<string>();
77+
const hash = new Map<number, number[]>();
78+
79+
nums.forEach((val, idx) => {
80+
const idxes = hash.get(val);
81+
if (idxes && idxes.length) {
82+
hash.set(val, [...idxes, idx]);
83+
} else {
84+
hash.set(val, [idx]);
85+
}
86+
});
87+
88+
for (let i = 0; i < nums.length - 2; i++) {
89+
for (let j = i + 1; j < nums.length - 1; j++) {
90+
const idxes = hash.get(0 - (nums[i] + nums[j])) ?? [];
91+
92+
for (let k = 0; k < idxes.length; k++) {
93+
const idx = idxes[k];
94+
if (idx != i && idx != j) {
95+
const sorted = [nums[i], nums[j], nums[idx]];
96+
sorted.sort((a, b) => a - b);
97+
const string = sorted.join("#");
98+
arraySet.add(string);
99+
100+
break;
101+
}
102+
}
103+
}
104+
}
105+
106+
return Array.from(arraySet).map((el) =>
107+
el.split("#").map((el) => Number(el))
108+
);
109+
}
110+
111+
๊ทผ๋ฐ ์–ด๋–ป๊ฒŒ๋“  ๋ชป๋งŒ๋“ฆ.
112+
*/
113+
114+
/**
115+
์–ด์ œ ํ•ด๋‹ต์„ ๋ณด์•˜์œผ๋‹ˆ, ๋‹ค์‹œํ•œ๋ฒˆ ํ’€์–ด๋ณด์ž.
116+
ํ•ต์‹ฌ์€ ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ, ์ž๋ฃŒ๊ตฌ์กฐ์— ์–ฝ๋ฉ”์ด์ง€ ์•Š๋Š” ๊ฒƒ
117+
*/
118+
119+
function threeSum(nums: number[]): number[][] {
120+
nums.sort((a, b) => a - b);
121+
const results = [];
122+
123+
// [-4, -1, -1, 0, 1, 2]
124+
for (let i = 0; i < nums.length; i++) {
125+
while (nums[i - 1] === nums[i]) i++;
126+
127+
let low = i + 1;
128+
let high = nums.length - 1;
129+
while (low < high) {
130+
const sum = nums[i] + nums[low] + nums[high];
131+
if (sum < 0) {
132+
low++;
133+
} else if (sum > 0) {
134+
high--;
135+
} else {
136+
while (nums[high] === nums[high - 1]) high--;
137+
while (nums[low] === nums[low + 1]) low++;
138+
results.push([nums[i], nums[low], nums[high]]);
139+
low++;
140+
high--;
141+
}
142+
}
143+
}
144+
145+
return results;
146+
}

โ€Ž3sum/Blossssom.tsโ€Ž

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/**
2+
* @param nums - ์ •์ˆ˜ ๋ฐฐ์—ด
3+
* @returns - ์„ธ ์š”์†Œ๋ฅผ ํ•ฉํ•ด 0์ด ๋˜๋Š” ๊ฐ’์˜ ๋ฐฐ์—ด
4+
* @description
5+
* - ํˆฌ ํฌ์ธํ„ฐ ๋ฐฉ์‹
6+
* - ๊ฒฐ๊ตญ ์œ ๋‹ˆํฌํ•œ ์กฐํ•ฉ์„ ์ฐพ์œผ๋ฉฐ ์ค‘๋ณต์„ ์ œ์™ธํ•˜๋Š” ๋ฐฉํ–ฅ
7+
* - ๋ฌด์กฐ๊ฑด ์ ์ธ ๋ฐ˜๋ณต ์ค„์ด๊ธฐ๊ฐ€ ์•„๋‹Œ ํšจ์œจ์  ๋ฒ”์œ„ ๋ฐ˜๋ณต์„ ํ•™์Šตํ•ด์•ผํ•จ
8+
* - ์‹œ๊ฐ„ ๋ณต์žก๋„ O(N^2)
9+
* - ๊ณต๊ฐ„ ๋ณต์žก๋„ O(log N)
10+
*/
11+
function threeSum(nums: number[]): number[][] {
12+
const answer: number[][] = [];
13+
nums.sort((a, b) => a - b);
14+
15+
for (let i = 0; i < nums.length - 2; i++) {
16+
if (i && nums[i] === nums[i - 1]) {
17+
continue;
18+
}
19+
20+
let left = i + 1;
21+
let right = nums.length - 1;
22+
23+
while (left < right) {
24+
const sum = nums[i] + nums[left] + nums[right];
25+
26+
if (sum === 0) {
27+
answer.push([nums[i], nums[left], nums[right]]);
28+
while (left < right && nums[left] === nums[left + 1]) {
29+
left++;
30+
}
31+
while (left < right && nums[right] === nums[right - 1]) {
32+
right--;
33+
}
34+
left++;
35+
right--;
36+
} else if (sum < 0) {
37+
left++;
38+
} else {
39+
right--;
40+
}
41+
}
42+
}
43+
44+
return answer;
45+
}
46+
47+
const nums = [-1, 0, 1, 2, -1, -4];
48+
threeSum(nums);
49+

โ€Ž3sum/JangAyeon.jsโ€Ž

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
var threeSum = function (nums) {
2+
let res = [];
3+
nums.sort((a, b) => a - b);
4+
5+
for (let i = 0; i < nums.length; i++) {
6+
if (i > 0 && nums[i] === nums[i - 1]) {
7+
continue;
8+
}
9+
10+
let j = i + 1;
11+
let k = nums.length - 1;
12+
13+
while (j < k) {
14+
let total = nums[i] + nums[j] + nums[k];
15+
16+
if (total > 0) {
17+
k--;
18+
} else if (total < 0) {
19+
j++;
20+
} else {
21+
res.push([nums[i], nums[j], nums[k]]);
22+
j++;
23+
24+
while (nums[j] === nums[j - 1] && j < k) {
25+
j++;
26+
}
27+
}
28+
}
29+
}
30+
return res;
31+
};

โ€Ž3sum/Seoya0512.pyโ€Ž

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
from typing import List
2+
3+
'''
4+
1์ฐจ ์‹œ๋„: ์‹คํŒจ (์‹œ๊ฐ„ ์ดˆ๊ณผ)
5+
- nums์—์„œ ๋‘ ์ˆ˜ (A,B)๋ฅผ ๊ณ ๋ฅธ ํ›„, ์„ธ๋ฒˆ์งธ ์ˆซ์ž์ธ -(A+B)๊ฐ€ A,B๋ฅผ ์ œ์™ธํ•œ nums์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
6+
- ์ค‘๋ณต๋œ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด set๊ณผ sorted(tuple)์„ ํ™œ์šฉ
7+
8+
์‹œ๊ฐ„ ๋ณต์žก๋„: O(N^3)
9+
- Outer loop์™€ Inner loop ๊ฐ๊ฐ O(N) ์ด๋ฏ€๋กœ O(N^2)์€ ๊ธฐ๋ณธ
10+
- nums[j:]์—์„œ third_num์„ ์ฐพ๋Š” ๋ฐ O(N) ์‹œ๊ฐ„์ด ๊ฑธ๋ ค์„œ ์ „์ฒด ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^3)
11+
12+
๊ณต๊ฐ„ ๋ณต์žก๋„: ์ตœ๋Œ€ O(N^2)
13+
- answer_set์€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” triplet์„ ์ €์žฅํ•˜๋ฉฐ, 3SUM ํŠน์„ฑ์ƒ ์œ ๋‹ˆํฌํ•œ triplet์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” O(N^2)
14+
15+
'''
16+
17+
class Solution:
18+
def threeSum(self, nums: List[int]) -> List[List[int]]:
19+
answer_set = set()
20+
21+
for i in range(len(nums) - 1):
22+
for j in range(i + 1, len(nums)):
23+
third_num = -1 * (nums[i] + nums[j])
24+
25+
if third_num in nums[j:]:
26+
answer_set.add(tuple(sorted([nums[i], nums[j], third_num])))
27+
28+
return [list(t) for t in answer_set]
29+
30+
'''
31+
๊ฐœ์„  : if third_num in nums[j:] ๋ถ€๋ถ„์„ set์„ ํ™œ์šฉ
32+
Approach
33+
- nums์—์„œ ๋‘ ์ˆ˜ (A,B)๋ฅผ ๊ณ ๋ฅธ ํ›„, ์„ธ๋ฒˆ์งธ ์ˆซ์ž์ธ -(A+B)๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ธฐ์กด ๊ธฐ์กฐ๋Š” ์œ ์ง€ํ•จ
34+
- (A,B) ์Œ ์ค‘ โ€˜A(์ฒซ ๋ฒˆ์งธ ์ˆซ์ž)โ€™๊ฐ€ ๋™์ผํ•œ ๊ฐ’์ผ ๋•Œ,
35+
์ด๋ฏธ ๋™์ผํ•œ first ๊ฐ’์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  triplet์„ ์ฒ˜๋ฆฌํ–ˆ์œผ๋ฏ€๋กœ
36+
๋‹ค์‹œ ๊ฐ™์€ first๋กœ ์‹œ์ž‘ํ•˜๋Š” ์กฐํ•ฉ์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์„ ํ™œ์šฉ
37+
- seen set์„ ํ™œ์šฉํ•ด์„œ (A,B)๊ฐ€ ๊ณ ์ •๋œ ์ดํ›„ ์„ธ๋ฒˆ์งธ ์ˆซ์ž์ธ -(A+B)๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ O(1) ์‹œ๊ฐ„์— ํ™•์ธ
38+
39+
- (์˜ˆ์‹œ) seen set์€ i๊ฐ€ ๊ณ ์ •๋œ ์ดํ›„ j๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ nums[j] ๊ฐ’์„ ์ €์žฅ
40+
- nums = [a, b, c, d, e]
41+
- i = 0 (nums[i] = a)์ผ ๋•Œ, seen = {}
42+
- j = 1 (nums[j] = b)์ผ ๋•Œ, seen = {b}
43+
- j = 2 (nums[j] = c)์ผ ๋•Œ, seen = {b, c}
44+
- j = 3 (nums[j] = d)์ผ ๋•Œ, seen = {b, c, d}
45+
- j = 4 (nums[j] = e)์ผ ๋•Œ, seen = {b, c, d, e)
46+
47+
์‹œ๊ฐ„ ๋ณต์žก๋„: O(N^2)
48+
- Outer loop์™€ Inner loop ๊ฐ๊ฐ O(N) ์ด๋ฏ€๋กœ ์ „์ฒด ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)
49+
50+
๊ณต๊ฐ„ ๋ณต์žก๋„: ์ตœ๋Œ€ O(N^2)
51+
- seen set์€ nums[j]๋ฅผ ์ €์žฅํ•˜๋ฉฐ ์ตœ์•…์˜ ๊ฒฝ์šฐ O(N)
52+
- used_first๋„ distinct first ๊ฐ’๋“ค์„ ์ €์žฅํ•˜๋ฉฐ ์ตœ๋Œ€ O(N)
53+
- answer_set์€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” triplet์„ ์ €์žฅํ•˜๋ฉฐ, 3SUM ํŠน์„ฑ์ƒ ์œ ๋‹ˆํฌํ•œ triplet์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” O(N^2)
54+
'''
55+
class Solution:
56+
def threeSum(self, nums: List[int]) -> List[List[int]]:
57+
answer_set = set()
58+
n = len(nums)
59+
60+
used_first = set() # ์ด๋ฏธ i๋กœ ์‚ฌ์šฉํ•œ ๊ฐ’๋“ค
61+
62+
for i in range(n - 1):
63+
# ๊ฐ™์€ ๊ฐ’์„ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋กœ ํ•œ ๋ฒˆ๋งŒ ์“ฐ๊ธฐ
64+
if nums[i] in used_first:
65+
continue
66+
used_first.add(nums[i])
67+
68+
seen = set()
69+
for j in range(i + 1, n):
70+
third_num = -1 * (nums[i] + nums[j])
71+
72+
if third_num in seen:
73+
triplet = tuple(sorted([nums[i], nums[j], third_num]))
74+
answer_set.add(triplet)
75+
else:
76+
seen.add(nums[j])
77+
78+
return [list(t) for t in answer_set]

โ€Ž3sum/ZetBe.pyโ€Ž

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
'''
2+
๋ฌธ์ œ: ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์„ธ ์ˆ˜์˜ ์กฐํ•ฉ์œผ๋กœ ํ•ฉ์ด 0์ด ๋˜๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ์ฐพ๊ธฐ
3+
ํ’€์ด: ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์ˆ˜๋ฅผ ๊ณ ์ •ํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๋‘ ์ˆ˜๋ฅผ ํˆฌ ํฌ์ธํ„ฐ๋กœ ํƒ์ƒ‰
4+
์‹œ๊ฐ„๋ณต์žก๋„: O(n^2)
5+
๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š”๋ฐ O(n log n), O(n)์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ ์ˆ˜์— ๋Œ€ํ•ด ํˆฌ ํฌ์ธํ„ฐ๋กœ ๋‚˜๋จธ์ง€ ๋‘ ์ˆ˜๋ฅผ ์ฐพ๋Š”๋ฐ O(n)์ด๋ฏ€๋กœ ์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n^2)์ด๋‹ค.
6+
๊ณต๊ฐ„๋ณต์žก๋„: O(1)
7+
์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ „์ฒด ๊ณต๊ฐ„๋ณต์žก๋„๋Š” O(1)์ด๋‹ค.
8+
์‚ฌ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ: ๋ฆฌ์ŠคํŠธ
9+
10+
๋ณ„๋„์˜ ํšŒ๊ณ : ์ •๋‹ต์— ์ค‘๋ณต๋œ ์กฐํ•ฉ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด,
11+
์ฒซ ๋ฒˆ์งธ ์ˆ˜๋ฅผ ๊ณ ์ •ํ•  ๋•Œ ์ด์ „ ์ˆ˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ , ๋‚˜๋จธ์ง€ ๋‘ ์ˆ˜๋ฅผ ์ฐพ์„ ๋•Œ๋„ ์„ธ ์ˆ˜์˜ ํ•ฉ์ด 0์ผ ๊ฒฝ์šฐ, ๊ฐ ๋‘ ๋™์ผํ•œ ์ˆ˜๊ฐ€ ์—ฐ์†์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋„๋ก ํ•˜์˜€๋‹ค.
12+
'''
13+
14+
import ast
15+
class Solution:
16+
def threeSum(self, nums: List[int]) -> List[List[int]]:
17+
nums.sort()
18+
answer = []
19+
for i in range(len(nums)-2):
20+
if i > 0 and nums[i-1] == nums[i]:
21+
continue
22+
l, r = i+1, len(nums)-1
23+
while l < r:
24+
if nums[i] + nums[l] + nums[r] == 0:
25+
arr = [nums[i], nums[l], nums[r]]
26+
answer.append(arr[:])
27+
while l < r and nums[l] == nums[l + 1]:
28+
l+=1
29+
while l < r and nums[r] == nums[r - 1]:
30+
r-=1
31+
l += 1
32+
r -= 1
33+
elif nums[i] + nums[l] + nums[r] < 0:
34+
l += 1
35+
else:
36+
r -= 1
37+
38+
39+
40+
41+
return answer
42+
43+

0 commit comments

Comments
ย (0)