File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change 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 ]
You can’t perform that action at this time.
0 commit comments