Skip to content

Commit a36c105

Browse files
committed
weekly v2
1 parent 8a8919f commit a36c105

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Solution:
2+
def shortestDistanceColor(self, colors: List[int], queries: List[List[int]]) -> List[int]:
3+
precomp = [[inf] * len(colors) for _ in range(3)]
4+
5+
closest = [inf, inf, inf]
6+
for i, c in enumerate(colors) :
7+
closest[c - 1] = i
8+
precomp[0][i] = abs(i - closest[0])
9+
precomp[1][i] = abs(i - closest[1])
10+
precomp[2][i] = abs(i - closest[2])
11+
12+
closest = [inf, inf, inf]
13+
for i in range(len(colors) - 1, -1, -1) :
14+
closest[colors[i] - 1] = i
15+
precomp[0][i] = min(precomp[0][i], closest[0] - i)
16+
precomp[1][i] = min(precomp[1][i], closest[1] - i)
17+
precomp[2][i] = min(precomp[2][i], closest[2] - i)
18+
19+
for r in precomp :
20+
for i in range(len(r)) :
21+
if r[i] == inf :
22+
r[i] = -1
23+
24+
return [precomp[c - 1][x] for x, c in queries]

0 commit comments

Comments
 (0)